← all workloads

serialize

A large module of `n` public functions, compiled to a .slang-module. Stresses IR/AST serialization (writeSerializedModule*) — the write side of the cost whose read side (readSerializedModule*) the `minimal` floor test and module loading exercise.

bucket: ir_infra  ·  compile mode: module  ·  flags: (none)  ·  default N: 1500

Phase composition across releases

Full sub-counter decomposition of compileInner — named leaf timers plus (self) residuals (a parent's time not covered by a named child, e.g. the autodiff transform in linkAndOptimizeIR (self)). Topmost band traces compileInner; hover a band for its phase.

serialize — full phase breakdown across releases (median ms) serialize 0.79× 0.0 123 245 daily → 25.14 25.15 25.16 25.17 25.18 25.19 25.20 25.21 25.22 25.23 25.24 26.1 26.2 26.3 26.4 26.5 26.7 26.8 26.9 26.10 26.11 06-25 06-26 serialize — parseTranslationUnit serialize — SemanticChecking serialize — generateIR serialize — frontEndExecute (self) serialize — generateOutput (self) serialize — compileInner (self) phase buckets parseTranslationUnit SemanticChecking generateIR frontEndExecute (self) specializeModule simplifyIR linkIR unrollLoopsInModule legalizeResourceTypes legalizeExistentialTypeLayout performMandatoryEarlyInlining performForceInlining linkAndOptimizeIR (self) emitEntryPointsSourceFromIR generateOutput (self) compileInner (self)

Compiled Slang source

exact compiled source (N = 1500); long files show the first 40 lines, the area around computeMain (±40), and the last 40 lines (gaps elided)

serialize.slang

// AUTO-GENERATED by perf-suite/workloads.py — do not edit by hand.
public float sfn_0(float x, float y) { return x * 1.0 + y * 1.0 + sin(x + 0.0); }
public float sfn_1(float x, float y) { return x * 2.0 + y * 2.0 + sin(x + 1.0); }
public float sfn_2(float x, float y) { return x * 3.0 + y * 3.0 + sin(x + 2.0); }
public float sfn_3(float x, float y) { return x * 4.0 + y * 4.0 + sin(x + 3.0); }
public float sfn_4(float x, float y) { return x * 5.0 + y * 5.0 + sin(x + 4.0); }
public float sfn_5(float x, float y) { return x * 6.0 + y * 1.0 + sin(x + 5.0); }
public float sfn_6(float x, float y) { return x * 7.0 + y * 2.0 + sin(x + 6.0); }
public float sfn_7(float x, float y) { return x * 1.0 + y * 3.0 + sin(x + 7.0); }
public float sfn_8(float x, float y) { return x * 2.0 + y * 4.0 + sin(x + 8.0); }
public float sfn_9(float x, float y) { return x * 3.0 + y * 5.0 + sin(x + 9.0); }
public float sfn_10(float x, float y) { return x * 4.0 + y * 1.0 + sin(x + 10.0); }
public float sfn_11(float x, float y) { return x * 5.0 + y * 2.0 + sin(x + 11.0); }
public float sfn_12(float x, float y) { return x * 6.0 + y * 3.0 + sin(x + 12.0); }
public float sfn_13(float x, float y) { return x * 7.0 + y * 4.0 + sin(x + 13.0); }
public float sfn_14(float x, float y) { return x * 1.0 + y * 5.0 + sin(x + 14.0); }
public float sfn_15(float x, float y) { return x * 2.0 + y * 1.0 + sin(x + 15.0); }
public float sfn_16(float x, float y) { return x * 3.0 + y * 2.0 + sin(x + 16.0); }
public float sfn_17(float x, float y) { return x * 4.0 + y * 3.0 + sin(x + 17.0); }
public float sfn_18(float x, float y) { return x * 5.0 + y * 4.0 + sin(x + 18.0); }
public float sfn_19(float x, float y) { return x * 6.0 + y * 5.0 + sin(x + 19.0); }
public float sfn_20(float x, float y) { return x * 7.0 + y * 1.0 + sin(x + 20.0); }
public float sfn_21(float x, float y) { return x * 1.0 + y * 2.0 + sin(x + 21.0); }
public float sfn_22(float x, float y) { return x * 2.0 + y * 3.0 + sin(x + 22.0); }
public float sfn_23(float x, float y) { return x * 3.0 + y * 4.0 + sin(x + 23.0); }
public float sfn_24(float x, float y) { return x * 4.0 + y * 5.0 + sin(x + 24.0); }
public float sfn_25(float x, float y) { return x * 5.0 + y * 1.0 + sin(x + 25.0); }
public float sfn_26(float x, float y) { return x * 6.0 + y * 2.0 + sin(x + 26.0); }
public float sfn_27(float x, float y) { return x * 7.0 + y * 3.0 + sin(x + 27.0); }
public float sfn_28(float x, float y) { return x * 1.0 + y * 4.0 + sin(x + 28.0); }
public float sfn_29(float x, float y) { return x * 2.0 + y * 5.0 + sin(x + 29.0); }
public float sfn_30(float x, float y) { return x * 3.0 + y * 1.0 + sin(x + 30.0); }
public float sfn_31(float x, float y) { return x * 4.0 + y * 2.0 + sin(x + 31.0); }
public float sfn_32(float x, float y) { return x * 5.0 + y * 3.0 + sin(x + 32.0); }
public float sfn_33(float x, float y) { return x * 6.0 + y * 4.0 + sin(x + 33.0); }
public float sfn_34(float x, float y) { return x * 7.0 + y * 5.0 + sin(x + 34.0); }
public float sfn_35(float x, float y) { return x * 1.0 + y * 1.0 + sin(x + 35.0); }
public float sfn_36(float x, float y) { return x * 2.0 + y * 2.0 + sin(x + 36.0); }
public float sfn_37(float x, float y) { return x * 3.0 + y * 3.0 + sin(x + 37.0); }
public float sfn_38(float x, float y) { return x * 4.0 + y * 4.0 + sin(x + 38.0); }

// … 1421 lines omitted …

public float sfn_1460(float x, float y) { return x * 5.0 + y * 1.0 + sin(x + 1460.0); }
public float sfn_1461(float x, float y) { return x * 6.0 + y * 2.0 + sin(x + 1461.0); }
public float sfn_1462(float x, float y) { return x * 7.0 + y * 3.0 + sin(x + 1462.0); }
public float sfn_1463(float x, float y) { return x * 1.0 + y * 4.0 + sin(x + 1463.0); }
public float sfn_1464(float x, float y) { return x * 2.0 + y * 5.0 + sin(x + 1464.0); }
public float sfn_1465(float x, float y) { return x * 3.0 + y * 1.0 + sin(x + 1465.0); }
public float sfn_1466(float x, float y) { return x * 4.0 + y * 2.0 + sin(x + 1466.0); }
public float sfn_1467(float x, float y) { return x * 5.0 + y * 3.0 + sin(x + 1467.0); }
public float sfn_1468(float x, float y) { return x * 6.0 + y * 4.0 + sin(x + 1468.0); }
public float sfn_1469(float x, float y) { return x * 7.0 + y * 5.0 + sin(x + 1469.0); }
public float sfn_1470(float x, float y) { return x * 1.0 + y * 1.0 + sin(x + 1470.0); }
public float sfn_1471(float x, float y) { return x * 2.0 + y * 2.0 + sin(x + 1471.0); }
public float sfn_1472(float x, float y) { return x * 3.0 + y * 3.0 + sin(x + 1472.0); }
public float sfn_1473(float x, float y) { return x * 4.0 + y * 4.0 + sin(x + 1473.0); }
public float sfn_1474(float x, float y) { return x * 5.0 + y * 5.0 + sin(x + 1474.0); }
public float sfn_1475(float x, float y) { return x * 6.0 + y * 1.0 + sin(x + 1475.0); }
public float sfn_1476(float x, float y) { return x * 7.0 + y * 2.0 + sin(x + 1476.0); }
public float sfn_1477(float x, float y) { return x * 1.0 + y * 3.0 + sin(x + 1477.0); }
public float sfn_1478(float x, float y) { return x * 2.0 + y * 4.0 + sin(x + 1478.0); }
public float sfn_1479(float x, float y) { return x * 3.0 + y * 5.0 + sin(x + 1479.0); }
public float sfn_1480(float x, float y) { return x * 4.0 + y * 1.0 + sin(x + 1480.0); }
public float sfn_1481(float x, float y) { return x * 5.0 + y * 2.0 + sin(x + 1481.0); }
public float sfn_1482(float x, float y) { return x * 6.0 + y * 3.0 + sin(x + 1482.0); }
public float sfn_1483(float x, float y) { return x * 7.0 + y * 4.0 + sin(x + 1483.0); }
public float sfn_1484(float x, float y) { return x * 1.0 + y * 5.0 + sin(x + 1484.0); }
public float sfn_1485(float x, float y) { return x * 2.0 + y * 1.0 + sin(x + 1485.0); }
public float sfn_1486(float x, float y) { return x * 3.0 + y * 2.0 + sin(x + 1486.0); }
public float sfn_1487(float x, float y) { return x * 4.0 + y * 3.0 + sin(x + 1487.0); }
public float sfn_1488(float x, float y) { return x * 5.0 + y * 4.0 + sin(x + 1488.0); }
public float sfn_1489(float x, float y) { return x * 6.0 + y * 5.0 + sin(x + 1489.0); }
public float sfn_1490(float x, float y) { return x * 7.0 + y * 1.0 + sin(x + 1490.0); }
public float sfn_1491(float x, float y) { return x * 1.0 + y * 2.0 + sin(x + 1491.0); }
public float sfn_1492(float x, float y) { return x * 2.0 + y * 3.0 + sin(x + 1492.0); }
public float sfn_1493(float x, float y) { return x * 3.0 + y * 4.0 + sin(x + 1493.0); }
public float sfn_1494(float x, float y) { return x * 4.0 + y * 5.0 + sin(x + 1494.0); }
public float sfn_1495(float x, float y) { return x * 5.0 + y * 1.0 + sin(x + 1495.0); }
public float sfn_1496(float x, float y) { return x * 6.0 + y * 2.0 + sin(x + 1496.0); }
public float sfn_1497(float x, float y) { return x * 7.0 + y * 3.0 + sin(x + 1497.0); }
public float sfn_1498(float x, float y) { return x * 1.0 + y * 4.0 + sin(x + 1498.0); }
public float sfn_1499(float x, float y) { return x * 2.0 + y * 5.0 + sin(x + 1499.0); }