UL Procyon definition files let you set up and run the benchmark with standard or custom settings. By default, these definition files are found in C:\Program Files\UL\Procyon\.
Setting | Description | Default values |
ai_device_type | Device to run the engine on. Value depends on the chosen engine. | auto |
ai_engine | Engine to run SD pipeline with | ort-directml, tensorrt, openvino |
model_id | Model ID as presented on HuggingFace.co | runwayml/stable-diffusion-v1-5, stabilityai/stable-diffusion-xl-base-1.0 |
inference_steps | UNET denoising step count | 100 |
batch_size | Number of images to process in a single pass of the pipeline | 1, 4 |
image_size | Resolution of the generated images | 512, 1024 |
num_images | Number of images to generate during the benchmark run. | 16 |
warmup | Enable warmup pass of the pipeline before measured run. Generally, the first pass of the pipeline is slower than following passes. | true |
Seed | Set to initialize random noise with the same seed for same images | 1073741824 |
scheduler | Scheduler to run UNET denoising with | ddim |
prepare_models_only | Enable to only prepare models with given settings and not run inference | false |
calc_clip_scores | Enable to calculate CLIP scores after images have been generated | false |
In the default runs only the engine and the target device can be modified
ai_imagegeneration_sd15fp16.def
<?xml version="1.0" encoding="utf-8"?> <benchmark> <test_info> <benchmark_tests> <benchmark_test name="AIImageGenerationSD15FP16Benchmark" test_run_type="EXPLICIT" version="1.0"/> </benchmark_tests> </test_info> <application_info> <selected_workloads> <selected_workload name="AIImageGenerationSD15FP16Default"/> </selected_workloads> </application_info> <settings> <setting> <name>ai_device_type</name> <value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. --> </setting> <setting> <name>ai_engine</name> <value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino --> </setting> </settings> </benchmark>
ai_imagegeneration_sdxlfp16.def
<?xml version="1.0" encoding="utf-8"?> <benchmark> <test_info> <benchmark_tests> <benchmark_test name="AIImageGenerationSDXLFP16Benchmark" test_run_type="EXPLICIT" version="1.0"/> </benchmark_tests> </test_info> <application_info> <selected_workloads> <selected_workload name="AIImageGenerationSDXLFP16Default"/> </selected_workloads> </application_info> <settings> <setting> <name>ai_device_type</name> <value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. --> </setting> <setting> <name>ai_engine</name> <value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino --> </setting> </settings> </benchmark>
ai_imagegeneration_sd15fp16_custom.def
<?xml version="1.0" encoding="utf-8"?> <benchmark> <test_info> <benchmark_tests> <benchmark_test name="AIImageGenerationSD15FP16BenchmarkCustom" test_run_type="EXPLICIT" version="1.0"/> </benchmark_tests> </test_info> <application_info> <selected_workloads> <selected_workload name="AIImageGenerationSD15FP16Custom"/> </selected_workloads> </application_info> <settings> <setting> <name>ai_device_type</name> <value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. --> </setting> <setting> <name>ai_engine</name> <value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino --> </setting> <setting> <name>model_id</name> <value>runwayml/stable-diffusion-v1-5</value> <!-- runwayml/stable-diffusion-v1-5. Other non-sdxl models may work --> </setting> <setting> <name>inference_steps</name> <value>100</value> </setting> <setting> <name>seed</name> <value>1073741824</value> <!-- any between 0 to 214748363 or none --> </setting> <setting> <name>batch_size</name> <value>4</value> </setting> <setting> <name>image_size</name> <value>512</value> <!-- 512 for SD 1.5. Others may work --> </setting> <setting> <name>num_images</name> <value>16</value> <!-- Must be a multiple of batch_size --> </setting> <setting> <name>warmup</name> <value>true</value> <!-- Execute pipeline once before starting measured passes --> </setting> <setting> <name>prepare_models_only</name> <value>false</value> <!-- Download and convert models for selected batch size and image size, but do not generate images --> </setting> <setting> <name>calc_clip_scores</name> <value>false</value> <!-- Calculate Clip scores for generated images --> </setting> <setting> <name>scheduler</name> <value>ddim</value> <!-- options: ddim, eulera, pndm --> </setting> </settings> </benchmark>
ai_imagegeneration_sdxlfp16_custom.def
<?xml version="1.0" encoding="utf-8"?> <benchmark> <test_info> <benchmark_tests> <benchmark_test name="AIImageGenerationSDXLFP16BenchmarkCustom" test_run_type="EXPLICIT" version="1.0"/> </benchmark_tests> </test_info> <application_info> <selected_workloads> <selected_workload name="AIImageGenerationSDXLFP16Custom"/> </selected_workloads> </application_info> <settings> <setting> <name>ai_device_type</name> <value>auto</value> <!-- options: ort-directml - auto; tensorrt - auto, cuda, cuda:0, cuda:1, etc.; openvino - auto, gpu, gpu.0, gpu.1 etc. --> </setting> <setting> <name>ai_engine</name> <value>ort-directml</value> <!-- options: ort-directml, tensorrt, openvino --> </setting> <setting> <name>model_id</name> <value>stabilityai/stable-diffusion-xl-base-1.0</value> <!-- stabilityai/stable-diffusion-xl-base-1.0 --> </setting> <setting> <name>inference_steps</name> <value>100</value> </setting> <setting> <name>seed</name> <value>0</value> <!-- any between 0 to 214748363 or none --> </setting> <setting> <name>batch_size</name> <value>1</value> </setting> <setting> <name>image_size</name> <value>1024</value> <!-- 1024 for SD XL. Others may work --> </setting> <setting> <name>num_images</name> <value>16</value> <!-- Must be a multiple of batch_size --> </setting> <setting> <name>warmup</name> <value>true</value> <!-- Execute pipeline once before starting measured passes --> </setting> <setting> <name>prepare_models_only</name> <value>false</value> <!-- Download and convert models for selected batch size and image size, but do not generate images --> </setting> <setting> <name>calc_clip_scores</name> <value>false</value> <!-- Calculate Clip scores for generated images --> </setting> <setting> <name>scheduler</name> <value>ddim</value> <!-- options: ddim, eulera, pndm --> </setting> </settings> </benchmark>