Performance Metrics
As of release 24.11, for each release, USD generates performance metrics using a specific set of assets and specific hardware and software configurations. This page describes what metrics are collected, what hardware and software configurations are used, the actual metrics results, and how to generate the metrics locally.
Table of Contents
What We Measure
For a given asset, our performance script captures the following metrics by default (items in bold are reported on this page):
Time to load and configure USD plugins for usdview
Time to open the stage
Time to reset the usdview prim browser
Time to initialize the usdview UI
Time to render first image (in usdview)
Time to shutdown Hydra
Time to close the stage
Time to tear down the usdview UI
Total time to start and quit usdview
Time to traverse the prims in the stage
We run 100 iterations for each asset, and capture the minimum and maximum times for that set of iterations. We also calculate the mean time across the 100 iterations.
For each asset, we first warm the filesystem cache by loading the asset in usdview, to ensure we’re not including cache performance issues in our metrics.
All assets used to measure performance are assumed to be available locally. Time to download assets is not measured or included as part of the gathered performance metrics.
What Environment Is Used
This section describes the computing environment used to generate the published performance metrics. The following operating systems and hardware are currently used.
Note
Machine specifications are subject to change. If specifications do change for a give release, historical performance measurements will be run to backfill any outdated data.
Linux
OS: CentOS Linux 7
CPU: AMD EPYC 7763 64-Core Processor, 2450 Mhz
CPU Utilization: 31 Core(s), 31 Logical Processor(s) (no hyperthreading)
RAM: 117GB
GPU: NVIDIA RTXA6000-24Q
macOS
OS: macOS 14.3
CPU: Apple M2 Ultra (20 Core)
RAM: 192GB
GPU: Apple M2 Ultra GPU (76 Core)
Windows
OS: Microsoft Windows 11 Enterprise
CPU: AMD EPYC 7763 64-Core Processor, 2450 Mhz
CPU Utilization: 31 Core(s), 31 Logical Processor(s) (no hyperthreading)
RAM: 128GB
GPU: NVIDIA RTXA6000-24Q
USD Build
For each of the operating systems and hardware platforms listed previously, we
build USD with the same build configuration. We use a stock invocation of
build_usd.py with the default options (release build, Python components,
imaging and USD imaging components, usdview, etc). Note that this build uses
the default system memory allocator, and does not use an alternate allocator
(as described in Use an allocator optimized for multithreading).
Metrics
Metrics are all measured in seconds.
Performance Graphs Per Platform
The following graphs show the time (in seconds) to open and close usdview for each asset. Graphs are provided for Linux, macOS, and Windows platforms (as described in What Environment Is Used). Performance data from the four most recent releases is reported on a rolling basis.
Note
A full historical rerun of all metrics on this page was performed for the 25.11 release because of a change in “create first image” timing methodology.
Interpret the metrics on this page with caution. Variation may arise from a variety of sources, including run-to-run inconsistency in how the GL driver schedules its flushes against our requests. Investigation on these is ongoing.
Standard Shader Ball
This asset is designed to be a comprehensive test of a broad array of material properties in a single render. Geometry is expressed using USD, materials are defined using MaterialX, texture maps are provided in OpenEXR format and encoded using the Academy Color Encoding System ACEScg color space.
In our performance sweep we use the mtlx_bubblegum material. Note the
image below may not exactly match the image generated during the performance
run; the primary intention is not necessarily to exercise specific renderers.
The shader ball asset can be downloaded here.
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.115236
max: 0.138383
mean: 0.12241002
|
min: 0.107972
max: 0.121466
mean: 0.11391579
|
min: 0.107262
max: 0.121741
mean: 0.11261217
|
min: 0.130829
max: 0.150694
mean: 0.13686351
|
Render first image |
min: 1.014073
max: 1.174135
mean: 1.03070467
|
min: 1.158713
max: 1.244631
mean: 1.18729007
|
min: 1.158948
max: 1.267224
mean: 1.19264357
|
min: 1.238056
max: 6.023667
mean: 1.30996932
|
Close stage |
min: 0.000419
max: 0.00088
mean: 0.00063121
|
min: 0.000403
max: 0.00098
mean: 0.00063492
|
min: 0.00041
max: 0.000872
mean: 0.00063941
|
min: 0.000299
max: 0.000758
mean: 0.00053994
|
Shut down Hydra |
min: 0.015888
max: 0.020628
mean: 0.01816711
|
min: 0.019347
max: 0.025039
mean: 0.0214453
|
min: 0.019558
max: 0.025509
mean: 0.02220578
|
min: 0.01957
max: 0.026398
mean: 0.02231206
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.09158
max: 0.09794
mean: 0.09362494
|
min: 0.089313
max: 0.099611
mean: 0.0922419
|
min: 0.08957
max: 0.094074
mean: 0.09161377
|
min: 0.096033
max: 0.106589
mean: 0.10036488
|
Render first image |
min: 0.707172
max: 0.743281
mean: 0.72663081
|
min: 0.732215
max: 1.182054
mean: 0.75341856
|
min: 0.734351
max: 0.771068
mean: 0.75320206
|
min: 1.088926
max: 1.434863
mean: 1.11545414
|
Close stage |
min: 0.000227
max: 0.000438
mean: 0.00027077
|
min: 0.000228
max: 0.00072
mean: 0.0002692
|
min: 0.000229
max: 0.000765
mean: 0.00027705
|
min: 0.000119
max: 0.000491
mean: 0.00016517
|
Shut down Hydra |
min: 0.010882
max: 0.018872
mean: 0.01490757
|
min: 0.012043
max: 0.020186
mean: 0.01560325
|
min: 0.012992
max: 0.021094
mean: 0.01651058
|
min: 0.012247
max: 0.020553
mean: 0.01637388
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.25587
max: 0.305149
mean: 0.26487604
|
min: 0.261208
max: 0.285934
mean: 0.27106556
|
min: 0.307208
max: 0.330622
mean: 0.31348188
|
min: 0.298701
max: 0.315642
mean: 0.30742671
|
Render first image |
min: 1.992974
max: 2.180966
mean: 2.07286652
|
min: 2.147584
max: 2.276122
mean: 2.20730552
|
min: 2.200855
max: 2.395714
mean: 2.29471476
|
min: 2.184459
max: 8.745092
mean: 2.3044740200000002
|
Close stage |
min: 0.001053
max: 0.001517
mean: 0.0011917100000000001
|
min: 0.001098
max: 0.003072
mean: 0.00161325
|
min: 0.001129
max: 0.002772
mean: 0.00170384
|
min: 0.000316
max: 0.001709
mean: 0.00068915
|
Shut down Hydra |
min: 0.054428
max: 0.061991
mean: 0.05740973
|
min: 0.060869
max: 0.070369
mean: 0.06414039
|
min: 0.062921
max: 0.072712
mean: 0.06641849
|
min: 0.060228
max: 0.069912
mean: 0.06285791
|
Kitchen Set
This asset provides a complex kitchen scene.
The Kitchen Set asset can be downloaded here.
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.073168
max: 0.145009
mean: 0.09162708
|
min: 0.074726
max: 0.144169
mean: 0.09645783
|
min: 0.068395
max: 0.130942
mean: 0.08763188
|
min: 0.067288
max: 0.141716
mean: 0.08831019
|
Render first image |
min: 0.226054
max: 0.265641
mean: 0.24998339
|
min: 0.22368
max: 0.278274
mean: 0.25676237
|
min: 0.232171
max: 0.277937
mean: 0.25756001
|
min: 0.269004
max: 0.370133
mean: 0.3244681
|
Close stage |
min: 0.005919
max: 0.009146
mean: 0.00745146
|
min: 0.006153
max: 0.00939
mean: 0.00767703
|
min: 0.006141
max: 0.011938
mean: 0.00778345
|
min: 0.006306
max: 0.00948
mean: 0.00794424
|
Shut down Hydra |
min: 0.009327
max: 0.01277
mean: 0.01035587
|
min: 0.019028
max: 0.025645
mean: 0.02086288
|
min: 0.022091
max: 0.028661
mean: 0.02401296
|
min: 0.01889
max: 0.027431
mean: 0.02081045
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.066191
max: 0.092933
mean: 0.07308952
|
min: 0.065663
max: 0.090223
mean: 0.07125644
|
min: 0.063966
max: 0.080906
mean: 0.0698448
|
min: 0.061154
max: 0.084453
mean: 0.0677701
|
Render first image |
min: 0.265819
max: 0.27916
mean: 0.27261008999999997
|
min: 0.266764
max: 0.283842
mean: 0.27376717
|
min: 0.269227
max: 0.290286
mean: 0.27491572999999997
|
min: 0.259431
max: 0.27281
mean: 0.26522798000000003
|
Close stage |
min: 0.002104
max: 0.003745
mean: 0.00246378
|
min: 0.002111
max: 0.003524
mean: 0.00255995
|
min: 0.002026
max: 0.003375
mean: 0.00240484
|
min: 0.002038
max: 0.003781
mean: 0.00244283
|
Shut down Hydra |
min: 0.008501
max: 0.018295
mean: 0.01436839
|
min: 0.014569
max: 0.025991
mean: 0.01954361
|
min: 0.016196
max: 0.029243
mean: 0.02228483
|
min: 0.017222
max: 0.02856
mean: 0.023692190000000002
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.107719
max: 0.139995
mean: 0.11558934
|
min: 0.113508
max: 0.133956
mean: 0.12159507
|
min: 0.111981
max: 0.137971
mean: 0.12011667
|
min: 0.105351
max: 0.120111
mean: 0.11219626
|
Render first image |
min: 0.361473
max: 0.394963
mean: 0.37519973
|
min: 0.369105
max: 0.398015
mean: 0.38108189
|
min: 0.370883
max: 0.410614
mean: 0.38819254
|
min: 0.387114
max: 0.430436
mean: 0.40021584
|
Close stage |
min: 0.017472
max: 0.025552
mean: 0.02119207
|
min: 0.017828
max: 0.024302
mean: 0.02113338
|
min: 0.018721
max: 0.026777
mean: 0.02178006
|
min: 0.01869
max: 0.028976
mean: 0.02328194
|
Shut down Hydra |
min: 0.022411
max: 0.028659
mean: 0.0245225
|
min: 0.034458
max: 0.048988
mean: 0.03803212
|
min: 0.040022
max: 0.047903
mean: 0.04345859
|
min: 0.045518
max: 0.05392
mean: 0.049226980000000004
|
ALab
ALab is a full production scene created by Animal Logic and contains over 300 assets, complete with high-quality textures and two characters with looping animation in shot context. Supplied as four separate downloads: the full production scene, high-quality textures, shot cameras matching the ALab trailer, and baked procedural fur and fabric for the animated characters.
The metrics have been measured with the base asset merged with the additional “techvars” info.
The ALab asset can be downloaded here.
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.371357
max: 0.548271
mean: 0.45959872
|
min: 0.548911
max: 0.678412
mean: 0.6064023
|
min: 0.370885
max: 0.607741
mean: 0.49451881
|
min: 0.433278
max: 0.610651
mean: 0.49882659
|
Render first image |
min: 5.28362
max: 6.896981
mean: 6.13319128
|
min: 5.766128
max: 6.884635
mean: 6.19572927
|
min: 5.739026
max: 6.745488
mean: 6.14509327
|
min: 6.466451
max: 7.045572
mean: 6.64202786
|
Close stage |
min: 0.077038
max: 0.092187
mean: 0.08111201
|
min: 0.073073
max: 0.088197
mean: 0.07835102000000001
|
min: 0.072466
max: 0.090774
mean: 0.07892472
|
min: 0.071978
max: 0.084795
mean: 0.07726876
|
Shut down Hydra |
min: 0.055039
max: 0.079683
mean: 0.06659816
|
min: 0.102756
max: 0.125685
mean: 0.11473493
|
min: 0.112753
max: 0.145573
mean: 0.12437892
|
min: 0.138889
max: 0.1682
mean: 0.15461057
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.424971
max: 0.486238
mean: 0.4425593
|
min: 0.448676
max: 0.696681
mean: 0.48802467
|
min: 0.404042
max: 0.525631
mean: 0.43365319
|
min: 0.387289
max: 0.476831
mean: 0.41920031
|
Render first image |
min: 2.64057
max: 3.143005
mean: 2.89778935
|
min: 2.657646
max: 3.089222
mean: 2.88767524
|
min: 2.692878
max: 3.149042
mean: 2.90695481
|
min: 3.374587
max: 3.796386
mean: 3.59016131
|
Close stage |
min: 0.034361
max: 0.049179
mean: 0.03895347
|
min: 0.033888
max: 0.04874
mean: 0.03857322
|
min: 0.032976
max: 0.045111
mean: 0.03838184
|
min: 0.032904
max: 0.046616
mean: 0.03683789
|
Shut down Hydra |
min: 0.095747
max: 0.118626
mean: 0.10839144
|
min: 0.132362
max: 0.15432
mean: 0.14241809
|
min: 0.125249
max: 0.160093
mean: 0.14434834
|
min: 0.142813
max: 0.177915
mean: 0.15281977
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.380082
max: 0.426562
mean: 0.39697795
|
min: 0.462555
max: 0.49612
mean: 0.47833338
|
min: 0.388397
max: 0.501158
mean: 0.40847451
|
min: 0.388077
max: 0.416403
mean: 0.4029927
|
Render first image |
min: 7.614644
max: 8.894503
mean: 7.89112705
|
min: 7.725252
max: 8.814743
mean: 7.86926245
|
min: 7.661506
max: 8.938386
mean: 7.95734312
|
min: 7.782884
max: 8.019821
mean: 7.89220199
|
Close stage |
min: 0.289758
max: 0.374639
mean: 0.33625491
|
min: 0.299041
max: 0.361021
mean: 0.33138915
|
min: 0.309628
max: 0.373266
mean: 0.33488903000000003
|
min: 0.317541
max: 0.405188
mean: 0.35938741
|
Shut down Hydra |
min: 0.210191
max: 0.448725
mean: 0.29269323
|
min: 0.268075
max: 0.511238
mean: 0.35748124
|
min: 0.275811
max: 0.522579
mean: 0.36632579
|
min: 0.329635
max: 0.572838
mean: 0.44994447
|
Moore Lane
4004 Moore Lane is a fully composed, high-quality scene for the purpose of testing various visual computing issues. The house itself was wrapped around a number of typical problem areas for light transport and noise sampling. This includes things like thin openings in exterior walls, recessed area light sources, deeply shadowed corners, and high-frequency details. The exterior landscape surrounding the house consisted of a relatively simple ecosystem of instanced plants which could provide some additional levels of complexity. In addition to the geometry itself being designed to exacerbate some typical issues, the USD structure itself was created for several layers of testing.
The metrics have been measured using the contained MooreLane_ASWF_0623.usda file.
The Moore Lane asset can be downloaded here.
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.059526
max: 0.107525
mean: 0.07169211
|
min: 0.057381
max: 0.104375
mean: 0.06832833
|
min: 0.057288
max: 0.107432
mean: 0.06790111
|
min: 0.055827
max: 0.112216
mean: 0.06557084
|
Render first image |
min: 10.264518
max: 10.814635
mean: 10.47099948
|
min: 10.309351
max: 10.822443
mean: 10.51112802
|
min: 10.277389
max: 10.730336
mean: 10.50606514
|
min: 8.860546
max: 9.682169
mean: 9.46078172
|
Close stage |
min: 0.008411
max: 0.010604
mean: 0.00929994
|
min: 0.008767
max: 0.010335
mean: 0.00938169
|
min: 0.00855
max: 0.009954
mean: 0.00924602
|
min: 0.008235
max: 0.011516
mean: 0.00891237
|
Shut down Hydra |
min: 0.040028
max: 0.181531
mean: 0.06746142
|
min: 0.045026
max: 0.16766
mean: 0.07075642
|
min: 0.047149
max: 0.145957
mean: 0.06069932
|
min: 0.047152
max: 0.201449
mean: 0.09379694
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.089092
max: 0.093273
mean: 0.09061327
|
min: 0.08339
max: 0.08886
mean: 0.08464025
|
min: 0.082767
max: 0.086665
mean: 0.08393583
|
min: 0.0779
max: 0.083264
mean: 0.07919203
|
Render first image |
min: 4.863602
max: 5.776998
mean: 5.27400174
|
min: 4.842576
max: 5.902118
mean: 5.2332561
|
min: 4.836536
max: 5.79493
mean: 5.2620495
|
min: 4.928251
max: 5.818517
mean: 5.27123588
|
Close stage |
min: 0.003309
max: 0.012977
mean: 0.00439985
|
min: 0.003316
max: 0.010872
mean: 0.00414966
|
min: 0.003405
max: 0.008938
mean: 0.0039708
|
min: 0.003165
max: 0.008126
mean: 0.0034966899999999998
|
Shut down Hydra |
min: 0.09596
max: 0.375403
mean: 0.30230101
|
min: 0.094684
max: 0.372043
mean: 0.28783911
|
min: 0.115016
max: 0.220803
mean: 0.12306854
|
min: 0.121073
max: 0.137621
mean: 0.12819004
|
Metric |
25.02 |
25.05 |
25.08 |
25.11 |
|---|---|---|---|---|
Open stage |
min: 0.143463
max: 0.167457
mean: 0.15291026
|
min: 0.138429
max: 0.153354
mean: 0.14575919
|
min: 0.143945
max: 0.169911
mean: 0.1492643
|
min: 0.135837
max: 0.148618
mean: 0.14251247
|
Render first image |
min: 9.360458
max: 11.134516
mean: 10.02221568
|
min: 9.49156
max: 11.177957
mean: 10.24690578
|
min: 8.738549
max: 10.169592
mean: 9.10423748
|
min: 8.113206
max: 9.48835
mean: 8.81574719
|
Close stage |
min: 0.094321
max: 0.117807
mean: 0.10088475
|
min: 0.095224
max: 0.119185
mean: 0.10143141
|
min: 0.094702
max: 0.116359
mean: 0.10147604
|
min: 0.094986
max: 0.124853
mean: 0.10156746999999999
|
Shut down Hydra |
min: 0.310136
max: 0.4116
mean: 0.36513765
|
min: 0.311263
max: 0.40723
mean: 0.36185346
|
min: 0.31048
max: 0.415117
mean: 0.36670874999999997
|
min: 0.321071
max: 0.470964
mean: 0.38557374
|
Running Performance Metrics Locally
We encourage developers to run the USD performance metrics to measure performance impacts of OpenUSD code contributions. Performance metrics can also be run to validate local runtime environments and hardware configurations.
Performance metrics are generating using the usdmeasureperformance.py
script found in pxr/extras/performance. See the
usdmeasureperformance tool docs for more
information on the different parameters available.
usdmeasureperformance.py uses usdview and testusdview, so you will need to make sure those are in your current path, or aliased properly.
For gathering the metrics published on this page, the following parameters are used (for each asset):
python usdmeasureperformance.py <asset.usda> -i 100 -a min -o <metrics output filename.yaml>
Optionally, –tracedir <dir> will output trace information to dir that may aid in performance debugging.
Adding Custom Metrics
You can add your own custom metrics and have usdmeasureperformance.py include them as part of the set of metrics that it measures.
To define a custom metric, create a script file that defines a
testUsdviewInputFunction() function that will be passed to testusdview.
For example, if you wanted to add a metric named “process prims”, that
traversed the stage and processed each prim in some way, you might have a
processPrimsMetric.py script that looks something like:
from pxr import Usd, UsdUtils, Usdviewq
def testUsdviewInputFunction(appController):
with Usdviewq.Timer("process prims", True):
stage = appController._dataModel.stage
for prim in stage.Traverse():
# process prim as needed, etc
See also the “traverse stage” example in pxr/extras/performance/explicitMetrics/stageTraversalMetric.py.
To include your custom metrics when running usdmeasureperformance.py,
add your metrics script name and metric name as part of the --custom-metrics
script parameter. For example, if you wanted to include the “process prims”
metric example for “MyTestAsset.usda”, you would use a
usdmeasureperformance.py command line similar to:
python usdmeasureperformance.py MyTestAsset.usda --custom-metrics processPrimsMetric.py:'process prims'
usdmeasureperformance.py will look for your custom metric script relative to the directory from which the usdmeasureperformance.py script is run.