← GPU latency results

gpu/structural

profile: nvidia-gpuno machine-readable summary

Legacy report: ingestion provenance is unrecorded; no raw artifact is inferred.

Original report

gpu/structural: CUDA public API benchmark

Measured cells: 534. Unsupported cells: 56, including 8 numerically verified but timing-excluded cells. Unsupported cells do not count as measured coverage.

Raw run: data/results/nvidia-gpu/gpu/structural/20261013_211954/.

Values are median (IQR) µs per operation. Samples time batches of declared operations plus device synchronization; retained output memory is limited to 256 MiB. Batch counts and raw durations are preserved in JSONL.

Setup, input transfers, library/plan initialization, JIT compilation, validation downloads and output destruction are outside timing. Intrinsic output allocation is inside timing; output-reuse rows instead use preallocated destinations across samples. Accumulating destinations are restored from prepared GPU seeds and synchronized before every batch clock, including initialization and calibration. Direct and eager each use one entered session across samples; direct FFT uses cached FftExecutor. JAX eager and compiled JIT are separate arms.

All measured output elements are checked against independently generated NumPy/SciPy reference results before and after sampling. Unsupported rows include unavailable APIs and APIs whose internal setup cannot be excluded; these are not performance measurements. Short batches limited by output memory remain identifiable in the sampling table.

I32/I64 outputs require exact integer equality without conversion to floating point. Division and remainder truncate toward zero; axis-1 sum preserves the input dtype. Arithmetic fixtures avoid overflow, and I64 unary/order fixtures include values above 2**53 to detect loss of integer precision. A zero verification value in these rows means exact equality.

Reshape-copy cases add a leading singleton dimension and materialize the full output. Direct Tensor.reshape and EagerSession.reshape copy device data; PyTorch calls public view_copy. Direct/PyTorch initial/final allocation-pointer checks are untimed and reject input aliasing. Eager reshape copies its input before returning a descriptor view; original CUDA placement/shape/dtype are checked and a public inspection copy is made outside timing. JAX reshape has no established matching owned-output guarantee and remains unsupported; reshape-plus-copy composition is not substituted.

Stack selects actual public Tensor.stack/EagerSession.stack with two distinct inputs and axis 0 or 2. Their intrinsic intermediate allocations are part of this public stack operation. PyTorch/JAX use native stack; final outputs are fully verified. Direct Rust initial/final pointer checks reject aliasing either input outside timing; eager original descriptors are checked before any untimed inspection copy.

Case tenferro-cuda-direct tenferro-cuda-eager pytorch-cuda jax-cuda jax-cuda-jit
pad_default_f32_n1024 11.107 (0.700) 87.698 (4.400) 27.356 (0.272) 113.978 (1.163) 85.602 (17.079)
pad_default_f64_n1024 11.305 (1.194) 100.325 (5.146) 26.899 (0.655) 136.479 (15.113) 83.532 (16.123)
slice_default_f32_n1024 14.435 (0.813) unsupported 21.947 (0.128) 139.657 (12.717) 83.622 (11.329)
slice_default_f64_n1024 16.119 (1.674) unsupported 22.539 (0.465) 140.175 (12.970) 80.144 (14.563)
reverse_default_f32_n1024 17.368 (0.574) 81.351 (22.484) 12.324 (0.206) 97.026 (19.510) 79.852 (10.068)
reverse_default_f64_n1024 17.181 (0.370) 103.598 (9.140) 12.889 (0.277) 94.402 (16.507) 74.335 (1.194)
concatenate_default_f32_n1024 27.092 (3.417) 227.647 (6.927) 11.834 (0.779) 160.046 (9.261) 77.459 (0.461)
concatenate_default_f64_n1024 28.917 (1.022) 222.489 (5.662) 11.858 (0.102) 155.635 (3.938) 79.805 (4.057)
extract_diag_default_f32_n1024 16.941 (0.182) 136.703 (4.080) 16.466 (0.103) 82.632 (8.864) 74.809 (8.482)
extract_diag_default_f64_n1024 17.045 (0.327) 139.436 (3.543) 16.276 (0.111) 81.981 (11.373) 77.538 (3.717)
embed_diag_default_f32_n32 25.936 (0.456) 171.018 (4.202) 23.201 (1.168) 86.017 (10.403) 77.756 (8.320)
embed_diag_default_f64_n32 25.681 (1.662) 180.611 (5.400) 22.038 (0.458) 88.906 (12.144) 70.026 (3.453)
tril_default_f32_n1024 16.278 (1.005) 166.580 (5.911) 7.789 (0.061) 80.449 (7.249) 75.091 (10.980)
tril_default_f64_n1024 16.419 (0.684) 167.920 (40.213) 7.814 (0.075) 79.017 (7.123) 80.978 (7.880)
triu_default_f32_n1024 16.496 (0.310) 141.788 (3.787) 7.758 (0.069) 79.266 (7.582) 75.980 (12.665)
triu_default_f64_n1024 16.270 (0.273) 145.285 (6.638) 7.787 (0.129) 79.948 (7.122) 80.507 (11.379)
take_along_axis_broadcast_indices_f32_n1024 86.799 (6.433) 132.796 (4.973) 37.745 (0.852) 82.327 (8.477) 83.358 (8.032)
take_along_axis_batched_indices_f32_n1024 unsupported unsupported 39.098 (1.655) 83.040 (8.325) 83.845 (8.491)
take_along_axis_broadcast_indices_f64_n1024 132.385 (7.163) 145.514 (4.400) 40.226 (2.605) 82.818 (7.751) 83.089 (10.825)
take_along_axis_batched_indices_f64_n1024 unsupported unsupported 36.999 (3.546) 86.342 (13.233) 85.600 (13.085)
scatter_default_f32_n1024 41.029 (0.510) 499.825 (22.273) 24.599 (0.526) 180.736 (20.408) 95.401 (14.711)
scatter_default_f64_n1024 40.449 (0.336) 532.206 (40.486) 24.876 (0.765) 168.609 (25.336) 92.036 (11.900)
cast_default_f32_n1024 14.224 (1.755) 211.408 (33.545) 12.497 (0.190) 141.552 (11.362) 76.817 (8.075)
cast_default_f64_n1024 12.962 (1.758) 155.781 (3.016) 12.348 (0.124) 142.158 (13.551) 75.048 (4.367)
pad_default_f32_n1048576 70.836 (0.191) 90.879 (4.316) 42.563 (0.104) 115.978 (9.868) 73.082 (3.042)
pad_default_f64_n1048576 70.547 (0.274) 120.674 (0.170) 80.551 (0.078) 115.556 (3.872) 67.741 (2.722)
slice_default_f32_n1048576 17.588 (0.047) unsupported 23.492 (0.639) 109.296 (2.317) 72.472 (2.600)
slice_default_f64_n1048576 30.577 (0.156) unsupported 28.531 (0.045) 106.393 (3.187) 73.362 (3.638)
reverse_default_f32_n1048576 32.886 (0.044) 60.893 (0.704) 28.865 (0.027) 79.390 (1.700) 71.700 (1.945)
reverse_default_f64_n1048576 58.184 (0.095) 105.449 (0.059) 54.414 (0.110) 79.093 (2.913) 67.639 (1.578)
concatenate_default_f32_n1048576 67.011 (0.185) 118.345 (0.333) 54.202 (0.062) 142.983 (2.040) 69.586 (2.033)
concatenate_default_f64_n1048576 118.458 (1.231) 215.604 (0.163) 105.518 (0.122) 148.146 (4.359) 114.814 (3.201)
extract_diag_default_f32_n1048576 11.559 (0.441) 58.310 (1.534) 16.709 (0.195) 75.258 (2.328) 72.666 (4.447)
extract_diag_default_f64_n1048576 10.722 (0.368) 58.413 (0.795) 16.812 (0.241) 83.918 (4.085) 75.180 (2.295)
embed_diag_default_f32_n1024 22.002 (0.836) 141.458 (11.995) 24.173 (1.388) 80.358 (3.416) 71.800 (3.206)
embed_diag_default_f64_n1024 32.243 (0.587) 160.651 (20.266) 29.803 (0.134) 78.215 (3.274) 73.263 (2.259)
tril_default_f32_n1048576 28.810 (0.216) 54.459 (0.074) 22.724 (0.169) 71.009 (1.849) 71.130 (1.408)
tril_default_f64_n1048576 44.662 (0.679) 95.657 (0.378) 42.077 (0.130) 68.988 (2.201) 68.958 (1.302)
triu_default_f32_n1048576 29.139 (0.207) 54.834 (0.211) 22.545 (0.178) 69.746 (1.175) 73.998 (1.494)
triu_default_f64_n1048576 45.242 (0.466) 95.759 (0.119) 41.871 (0.045) 65.257 (0.854) 72.178 (5.445)
take_along_axis_broadcast_indices_f32_n1048576 114.405 (7.117) 133.644 (9.793) 50.382 (0.138) 81.321 (9.025) 83.124 (7.056)
take_along_axis_batched_indices_f32_n1048576 unsupported unsupported 63.414 (0.307) 81.386 (9.977) 76.164 (3.922)
take_along_axis_broadcast_indices_f64_n1048576 181.732 (5.164) 116.547 (10.279) 69.891 (0.457) 83.476 (11.299) 83.872 (10.383)
take_along_axis_batched_indices_f64_n1048576 unsupported unsupported 81.990 (0.136) 82.523 (5.544) 84.219 (8.627)
scatter_default_f32_n1048576 80.306 (1.071) 149.651 (1.587) 74.855 (0.095) 159.374 (8.875) 83.739 (2.762)
scatter_default_f64_n1048576 143.782 (1.890) 244.063 (1.738) 132.218 (0.145) 164.239 (5.849) 142.379 (2.581)
cast_default_f32_n1048576 44.004 (0.365) 69.432 (0.225) 41.258 (0.059) 128.776 (6.314) 68.280 (3.248)
cast_default_f64_n1048576 41.893 (0.079) 94.692 (0.112) 40.444 (0.030) 124.862 (4.155) 67.097 (3.579)
broadcast_in_dim_f32_n1024 10.774 (0.992) unsupported 17.331 (1.088) 101.375 (4.293) 88.738 (17.717)
broadcast_in_dim_f64_n1024 11.975 (1.330) unsupported 16.508 (0.563) 101.695 (8.271) 85.791 (8.034)
convert_f32_f64_n1024 8.519 (0.648) 157.975 (21.569) 12.673 (0.192) 119.369 (4.102) 82.230 (2.641)
broadcast_in_dim_f32_n1048576 30.885 (0.519) unsupported 17.510 (0.961) 105.774 (1.791) 78.759 (1.429)
broadcast_in_dim_f64_n1048576 33.040 (0.636) unsupported 28.095 (0.073) 104.703 (1.331) 80.337 (1.254)
convert_f32_f64_n1048576 44.324 (0.589) 69.609 (0.141) 41.323 (0.050) 125.788 (2.808) 78.319 (2.312)
dynamic_slice_in_bounds_f32_n1024 83.709 (2.325) 356.412 (143.022) unsupported 150.465 (17.842) 89.751 (15.040)
dynamic_slice_clamped_f32_n1024 83.044 (0.996) 570.227 (122.261) unsupported 127.366 (6.479) 89.759 (14.166)
gather_axis0_f32_n1024 27.344 (0.281) 33.652 (0.412) 11.730 (0.226) 123.493 (2.151) 88.106 (10.768)
gather_axis1_f32_n1024 23.094 (2.130) 33.682 (1.258) 11.311 (0.076) 134.902 (8.230) 87.415 (8.377)
dynamic_slice_in_bounds_f64_n1024 24.514 (2.203) 488.001 (10.741) unsupported 155.368 (13.658) 87.604 (9.097)
dynamic_slice_clamped_f64_n1024 19.329 (1.713) 570.749 (42.849) unsupported 129.460 (7.061) 89.274 (11.768)
gather_axis0_f64_n1024 23.969 (3.057) 34.490 (2.260) 11.532 (0.094) 127.731 (3.061) 86.189 (11.062)
gather_axis1_f64_n1024 20.370 (0.853) 37.579 (1.612) 11.768 (0.656) 137.221 (10.186) 87.109 (8.981)
dynamic_slice_in_bounds_f32_n1048576 16.239 (0.396) 573.338 (47.360) unsupported 154.928 (23.469) 89.485 (13.195)
dynamic_slice_clamped_f32_n1048576 15.376 (0.342) 799.882 (35.694) unsupported 126.036 (4.115) 84.191 (8.147)
gather_axis0_f32_n1048576 23.737 (0.056) 43.037 (2.300) 22.674 (0.526) 115.543 (3.179) 83.530 (1.934)
gather_axis1_f32_n1048576 20.457 (0.040) 30.863 (1.311) 22.779 (0.419) 119.706 (3.083) 83.691 (4.128)
dynamic_slice_in_bounds_f64_n1048576 17.096 (0.069) 721.551 (48.368) unsupported 137.560 (4.973) 84.558 (7.359)
dynamic_slice_clamped_f64_n1048576 16.960 (0.061) 730.490 (59.736) unsupported 129.294 (0.703) 83.946 (10.273)
gather_axis0_f64_n1048576 44.160 (0.072) 47.092 (0.462) 28.150 (0.054) 115.036 (3.714) 83.276 (7.243)
gather_axis1_f64_n1048576 32.598 (0.150) 34.541 (0.169) 41.749 (0.070) 128.899 (5.634) 82.117 (9.708)
pad_interior_f32_n1024 85.783 (2.585) 523.427 (34.167) unsupported 107.427 (15.241) 84.367 (4.244)
pad_crop_f32_n1024 81.629 (1.708) 568.739 (38.520) 30.030 (2.076) 113.559 (7.248) 86.882 (12.784)
pad_interior_crop_f32_n1024 75.047 (0.729) 492.161 (29.027) unsupported 116.458 (9.192) 90.739 (11.141)
pad_interior_f64_n1024 75.537 (0.703) 328.809 (19.290) unsupported 135.810 (7.043) 96.806 (22.561)
pad_crop_f64_n1024 78.967 (0.316) 379.009 (17.360) 29.802 (0.724) 149.378 (14.125) 101.672 (9.778)
pad_interior_crop_f64_n1024 77.301 (1.044) 334.399 (21.644) unsupported 170.729 (31.740) 100.724 (16.686)
pad_interior_f32_n1048576 323.387 (0.980) 370.760 (0.791) unsupported 116.385 (1.648) 103.515 (1.356)
pad_crop_f32_n1048576 59.886 (0.211) 91.373 (0.056) 42.097 (0.045) 108.041 (2.580) 80.138 (2.355)
pad_interior_crop_f32_n1048576 310.774 (1.425) 353.100 (0.246) unsupported 113.092 (1.596) 104.111 (3.013)
pad_interior_f64_n1048576 332.206 (1.080) 395.625 (0.700) unsupported 219.326 (8.047) 207.460 (6.011)
pad_crop_f64_n1048576 66.147 (0.281) 117.200 (0.166) 79.829 (0.088) 107.863 (2.761) 73.397 (2.034)
pad_interior_crop_f64_n1048576 330.143 (1.335) 378.307 (0.294) unsupported 214.948 (18.323) 214.250 (10.283)
reshape_copy_f32_n1024 74.182 (0.777) 127.976 (6.093) 17.798 (0.307) unsupported unsupported
stack_axis0_f32_n1024 253.274 (19.195) 774.774 (118.705) 14.415 (0.160) 139.181 (7.196) 84.999 (2.939)
stack_axis2_f32_n1024 331.720 (7.143) 838.139 (17.170) 14.675 (0.395) 145.819 (5.338) 81.522 (2.696)
reshape_copy_f64_n1024 97.782 (0.955) 149.051 (4.615) 19.324 (0.927) unsupported unsupported
stack_axis0_f64_n1024 408.776 (90.519) 690.391 (30.310) 15.273 (0.801) 155.673 (23.383) 85.440 (7.103)
stack_axis2_f64_n1024 412.245 (13.439) 840.486 (24.116) 15.149 (0.615) 156.105 (24.636) 87.120 (6.818)
reshape_copy_c32_n1024 110.743 (1.015) 146.292 (4.555) 17.827 (0.130) unsupported unsupported
stack_axis0_c32_n1024 446.477 (43.358) 848.945 (43.654) 14.084 (0.208) 161.391 (26.988) 87.309 (5.220)
stack_axis2_c32_n1024 420.079 (28.658) 885.885 (63.068) 14.231 (0.259) 157.787 (10.911) 88.034 (9.218)
reshape_copy_c64_n1024 105.933 (2.937) 136.529 (6.374) 18.658 (1.379) unsupported unsupported
stack_axis0_c64_n1024 406.911 (6.852) 706.783 (12.151) 13.992 (0.433) 161.270 (19.081) 83.341 (1.377)
stack_axis2_c64_n1024 420.004 (21.919) 722.171 (22.283) 14.292 (0.199) 159.539 (23.127) 87.124 (5.840)
reshape_copy_i32_n1024 95.802 (1.490) 133.007 (1.514) 17.815 (0.427) unsupported unsupported
stack_axis0_i32_n1024 281.356 (83.498) 502.351 (7.357) 14.537 (0.762) 164.245 (30.552) 88.188 (7.333)
stack_axis2_i32_n1024 332.110 (36.139) 586.126 (6.802) 14.664 (0.134) 147.382 (0.383) 86.778 (7.873)
reshape_copy_i64_n1024 78.067 (1.026) 138.258 (2.276) 18.097 (0.258) unsupported unsupported
stack_axis0_i64_n1024 308.625 (3.861) 934.308 (16.614) 14.515 (0.741) 137.101 (1.929) 87.408 (6.939)
stack_axis2_i64_n1024 486.923 (12.169) 851.653 (15.847) 14.384 (0.409) 136.084 (7.961) 83.454 (7.990)
reshape_copy_f32_n1048576 35.599 (1.391) 55.274 (7.121) 27.501 (0.033) unsupported unsupported
stack_axis0_f32_n1048576 145.942 (0.699) 206.345 (1.306) 53.814 (0.070) 140.087 (3.180) 78.462 (1.511)
stack_axis2_f32_n1048576 135.528 (4.458) 199.473 (2.281) 88.609 (0.141) 142.063 (3.336) 76.046 (1.194)
reshape_copy_f64_n1048576 55.008 (0.081) 55.174 (0.119) 53.232 (0.046) unsupported unsupported
stack_axis0_f64_n1048576 281.916 (0.176) 390.573 (0.270) 105.142 (0.102) 143.838 (2.001) 110.387 (0.667)
stack_axis2_f64_n1048576 215.449 (0.149) 326.493 (0.256) 173.731 (0.248) 141.331 (2.832) 110.238 (0.462)
reshape_copy_c32_n1048576 55.353 (0.231) 55.306 (0.097) 53.240 (0.089) unsupported unsupported
stack_axis0_c32_n1048576 281.925 (0.446) 391.568 (1.616) 105.330 (0.167) 155.206 (2.826) 110.383 (0.202)
stack_axis2_c32_n1048576 216.185 (0.350) 327.642 (1.784) 173.636 (0.124) 148.334 (4.694) 110.365 (0.400)
reshape_copy_c64_n1048576 106.562 (0.524) 106.680 (0.262) 104.398 (0.074) unsupported unsupported
stack_axis0_c64_n1048576 553.458 (0.621) 763.959 (0.888) 207.647 (0.282) 252.044 (19.983) 220.342 (2.085)
stack_axis2_c64_n1048576 419.412 (0.948) 633.826 (2.013) 347.662 (0.436) 243.087 (11.131) 222.701 (6.456)
reshape_copy_i32_n1048576 30.668 (0.224) 31.109 (0.225) 27.604 (0.067) unsupported unsupported
stack_axis0_i32_n1048576 154.736 (1.250) 209.551 (1.237) 53.873 (0.108) 147.547 (10.553) 77.631 (2.730)
stack_axis2_i32_n1048576 143.266 (0.672) 194.409 (2.049) 89.622 (0.101) 155.021 (17.594) 80.162 (5.279)
reshape_copy_i64_n1048576 58.738 (0.532) 58.990 (0.438) 53.109 (0.197) unsupported unsupported
stack_axis0_i64_n1048576 299.986 (2.713) 404.012 (2.212) 105.052 (0.164) 169.309 (17.506) 111.155 (0.210)
stack_axis2_i64_n1048576 224.293 (1.488) 340.523 (1.545) 173.558 (0.082) 165.199 (14.024) 111.428 (0.601)

Sampling

Case Backend Ops/sample Samples Median batch ms Verification error/tolerance
pad_default_f32_n1024 tenferro-cuda-direct 256 15 2.843 0
pad_default_f64_n1024 tenferro-cuda-direct 256 15 2.894 0
slice_default_f32_n1024 tenferro-cuda-direct 128 15 1.848 0
slice_default_f64_n1024 tenferro-cuda-direct 128 15 2.063 0
reverse_default_f32_n1024 tenferro-cuda-direct 128 15 2.223 0
reverse_default_f64_n1024 tenferro-cuda-direct 128 15 2.199 0
concatenate_default_f32_n1024 tenferro-cuda-direct 128 15 3.468 0
concatenate_default_f64_n1024 tenferro-cuda-direct 64 15 1.851 0
extract_diag_default_f32_n1024 tenferro-cuda-direct 64 15 1.084 0
extract_diag_default_f64_n1024 tenferro-cuda-direct 64 15 1.091 0
embed_diag_default_f32_n32 tenferro-cuda-direct 128 15 3.320 0
embed_diag_default_f64_n32 tenferro-cuda-direct 128 15 3.287 0
tril_default_f32_n1024 tenferro-cuda-direct 128 15 2.084 0
tril_default_f64_n1024 tenferro-cuda-direct 128 15 2.102 0
triu_default_f32_n1024 tenferro-cuda-direct 128 15 2.111 0
triu_default_f64_n1024 tenferro-cuda-direct 128 15 2.082 0
take_along_axis_broadcast_indices_f32_n1024 tenferro-cuda-direct 32 15 2.778 0
take_along_axis_batched_indices_f32_n1024 tenferro-cuda-direct — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
take_along_axis_broadcast_indices_f64_n1024 tenferro-cuda-direct 16 15 2.118 0
take_along_axis_batched_indices_f64_n1024 tenferro-cuda-direct — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
scatter_default_f32_n1024 tenferro-cuda-direct 64 15 2.626 0
scatter_default_f64_n1024 tenferro-cuda-direct 64 15 2.589 0
cast_default_f32_n1024 tenferro-cuda-direct 256 15 3.641 0
cast_default_f64_n1024 tenferro-cuda-direct 256 15 3.318 0
pad_default_f32_n1048576 tenferro-cuda-direct 32 15 2.267 0
pad_default_f64_n1048576 tenferro-cuda-direct 31 15 2.187 0
slice_default_f32_n1048576 tenferro-cuda-direct 128 15 2.251 0
slice_default_f64_n1048576 tenferro-cuda-direct 64 15 1.957 0
reverse_default_f32_n1048576 tenferro-cuda-direct 64 15 2.105 0
reverse_default_f64_n1048576 tenferro-cuda-direct 32 15 1.862 0
concatenate_default_f32_n1048576 tenferro-cuda-direct 32 15 2.144 0
concatenate_default_f64_n1048576 tenferro-cuda-direct 16 15 1.895 0
extract_diag_default_f32_n1048576 tenferro-cuda-direct 256 15 2.959 0
extract_diag_default_f64_n1048576 tenferro-cuda-direct 256 15 2.745 0
embed_diag_default_f32_n1024 tenferro-cuda-direct 64 15 1.408 0
embed_diag_default_f64_n1024 tenferro-cuda-direct 32 15 1.032 0
tril_default_f32_n1048576 tenferro-cuda-direct 64 15 1.844 0
tril_default_f64_n1048576 tenferro-cuda-direct 32 15 1.429 0
triu_default_f32_n1048576 tenferro-cuda-direct 64 15 1.865 0
triu_default_f64_n1048576 tenferro-cuda-direct 32 15 1.448 0
take_along_axis_broadcast_indices_f32_n1048576 tenferro-cuda-direct 32 15 3.661 0
take_along_axis_batched_indices_f32_n1048576 tenferro-cuda-direct — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
take_along_axis_broadcast_indices_f64_n1048576 tenferro-cuda-direct 16 15 2.908 0
take_along_axis_batched_indices_f64_n1048576 tenferro-cuda-direct — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
scatter_default_f32_n1048576 tenferro-cuda-direct 32 15 2.570 0
scatter_default_f64_n1048576 tenferro-cuda-direct 16 15 2.301 0
cast_default_f32_n1048576 tenferro-cuda-direct 32 15 1.408 0
cast_default_f64_n1048576 tenferro-cuda-direct 64 15 2.681 0
broadcast_in_dim_f32_n1024 tenferro-cuda-direct 256 15 2.758 0
broadcast_in_dim_f64_n1024 tenferro-cuda-direct 256 15 3.066 0
convert_f32_f64_n1024 tenferro-cuda-direct 256 15 2.181 0
broadcast_in_dim_f32_n1048576 tenferro-cuda-direct 64 15 1.977 0
broadcast_in_dim_f64_n1048576 tenferro-cuda-direct 32 15 1.057 0
convert_f32_f64_n1048576 tenferro-cuda-direct 32 15 1.418 0
dynamic_slice_in_bounds_f32_n1024 tenferro-cuda-direct 32 15 2.679 0
dynamic_slice_clamped_f32_n1024 tenferro-cuda-direct 32 15 2.657 0
gather_axis0_f32_n1024 tenferro-cuda-direct 128 15 3.500 0
gather_axis1_f32_n1024 tenferro-cuda-direct 128 15 2.956 0
dynamic_slice_in_bounds_f64_n1024 tenferro-cuda-direct 128 15 3.138 0
dynamic_slice_clamped_f64_n1024 tenferro-cuda-direct 128 15 2.474 0
gather_axis0_f64_n1024 tenferro-cuda-direct 128 15 3.068 0
gather_axis1_f64_n1024 tenferro-cuda-direct 128 15 2.607 0
dynamic_slice_in_bounds_f32_n1048576 tenferro-cuda-direct 128 15 2.079 0
dynamic_slice_clamped_f32_n1048576 tenferro-cuda-direct 256 15 3.936 0
gather_axis0_f32_n1048576 tenferro-cuda-direct 128 15 3.038 0
gather_axis1_f32_n1048576 tenferro-cuda-direct 128 15 2.618 0
dynamic_slice_in_bounds_f64_n1048576 tenferro-cuda-direct 128 15 2.188 0
dynamic_slice_clamped_f64_n1048576 tenferro-cuda-direct 128 15 2.171 0
gather_axis0_f64_n1048576 tenferro-cuda-direct 64 15 2.826 0
gather_axis1_f64_n1048576 tenferro-cuda-direct 64 15 2.086 0
pad_interior_f32_n1024 tenferro-cuda-direct 32 15 2.745 0
pad_crop_f32_n1024 tenferro-cuda-direct 32 15 2.612 0
pad_interior_crop_f32_n1024 tenferro-cuda-direct 32 15 2.402 0
pad_interior_f64_n1024 tenferro-cuda-direct 32 15 2.417 0
pad_crop_f64_n1024 tenferro-cuda-direct 32 15 2.527 0
pad_interior_crop_f64_n1024 tenferro-cuda-direct 32 15 2.474 0
pad_interior_f32_n1048576 tenferro-cuda-direct 8 15 2.587 0
pad_crop_f32_n1048576 tenferro-cuda-direct 64 15 3.833 0
pad_interior_crop_f32_n1048576 tenferro-cuda-direct 8 15 2.486 0
pad_interior_f64_n1048576 tenferro-cuda-direct 5 15 1.661 0
pad_crop_f64_n1048576 tenferro-cuda-direct 32 15 2.117 0
pad_interior_crop_f64_n1048576 tenferro-cuda-direct 5 15 1.651 0
reshape_copy_f32_n1024 tenferro-cuda-direct 32 15 2.374 0
stack_axis0_f32_n1024 tenferro-cuda-direct 16 15 4.052 0
stack_axis2_f32_n1024 tenferro-cuda-direct 8 15 2.654 0
reshape_copy_f64_n1024 tenferro-cuda-direct 32 15 3.129 0
stack_axis0_f64_n1024 tenferro-cuda-direct 8 15 3.270 0
stack_axis2_f64_n1024 tenferro-cuda-direct 8 15 3.298 0
reshape_copy_c32_n1024 tenferro-cuda-direct 32 15 3.544 0
stack_axis0_c32_n1024 tenferro-cuda-direct 8 15 3.572 0
stack_axis2_c32_n1024 tenferro-cuda-direct 8 15 3.361 0
reshape_copy_c64_n1024 tenferro-cuda-direct 32 15 3.390 0
stack_axis0_c64_n1024 tenferro-cuda-direct 8 15 3.255 0
stack_axis2_c64_n1024 tenferro-cuda-direct 8 15 3.360 0
reshape_copy_i32_n1024 tenferro-cuda-direct 32 15 3.066 0
stack_axis0_i32_n1024 tenferro-cuda-direct 16 15 4.502 0
stack_axis2_i32_n1024 tenferro-cuda-direct 8 15 2.657 0
reshape_copy_i64_n1024 tenferro-cuda-direct 32 15 2.498 0
stack_axis0_i64_n1024 tenferro-cuda-direct 8 15 2.469 0
stack_axis2_i64_n1024 tenferro-cuda-direct 8 15 3.895 0
reshape_copy_f32_n1048576 tenferro-cuda-direct 64 15 2.278 0
stack_axis0_f32_n1048576 tenferro-cuda-direct 16 15 2.335 0
stack_axis2_f32_n1048576 tenferro-cuda-direct 16 15 2.168 0
reshape_copy_f64_n1048576 tenferro-cuda-direct 32 15 1.760 0
stack_axis0_f64_n1048576 tenferro-cuda-direct 8 15 2.255 0
stack_axis2_f64_n1048576 tenferro-cuda-direct 16 15 3.447 0
reshape_copy_c32_n1048576 tenferro-cuda-direct 32 15 1.771 0
stack_axis0_c32_n1048576 tenferro-cuda-direct 8 15 2.255 0
stack_axis2_c32_n1048576 tenferro-cuda-direct 16 15 3.459 0
reshape_copy_c64_n1048576 tenferro-cuda-direct 16 15 1.705 0
stack_axis0_c64_n1048576 tenferro-cuda-direct 4 15 2.214 0
stack_axis2_c64_n1048576 tenferro-cuda-direct 8 15 3.355 0
reshape_copy_i32_n1048576 tenferro-cuda-direct 64 15 1.963 0
stack_axis0_i32_n1048576 tenferro-cuda-direct 16 15 2.476 0
stack_axis2_i32_n1048576 tenferro-cuda-direct 16 15 2.292 0
reshape_copy_i64_n1048576 tenferro-cuda-direct 32 15 1.880 0
stack_axis0_i64_n1048576 tenferro-cuda-direct 8 15 2.400 0
stack_axis2_i64_n1048576 tenferro-cuda-direct 16 15 3.589 0
pad_default_f32_n1024 tenferro-cuda-eager 32 15 2.806 0
pad_default_f64_n1024 tenferro-cuda-eager 32 15 3.210 0
slice_default_f32_n1024 tenferro-cuda-eager — — — EagerSession::slice returns a lazy metadata view; it is not equivalent to the materializing direct slice / torch.slice_copy / JAX slice contract. No copy is added inside its timer.
slice_default_f64_n1024 tenferro-cuda-eager — — — EagerSession::slice returns a lazy metadata view; it is not equivalent to the materializing direct slice / torch.slice_copy / JAX slice contract. No copy is added inside its timer.
reverse_default_f32_n1024 tenferro-cuda-eager 32 15 2.603 0
reverse_default_f64_n1024 tenferro-cuda-eager 32 15 3.315 0
concatenate_default_f32_n1024 tenferro-cuda-eager 16 15 3.642 0
concatenate_default_f64_n1024 tenferro-cuda-eager 8 15 1.780 0
extract_diag_default_f32_n1024 tenferro-cuda-eager 16 15 2.187 0
extract_diag_default_f64_n1024 tenferro-cuda-eager 16 15 2.231 0
embed_diag_default_f32_n32 tenferro-cuda-eager 16 15 2.736 0
embed_diag_default_f64_n32 tenferro-cuda-eager 16 15 2.890 0
tril_default_f32_n1024 tenferro-cuda-eager 16 15 2.665 0
tril_default_f64_n1024 tenferro-cuda-eager 16 15 2.687 0
triu_default_f32_n1024 tenferro-cuda-eager 16 15 2.269 0
triu_default_f64_n1024 tenferro-cuda-eager 16 15 2.325 0
take_along_axis_broadcast_indices_f32_n1024 tenferro-cuda-eager 16 15 2.125 0
take_along_axis_batched_indices_f32_n1024 tenferro-cuda-eager — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
take_along_axis_broadcast_indices_f64_n1024 tenferro-cuda-eager 16 15 2.328 0
take_along_axis_batched_indices_f64_n1024 tenferro-cuda-eager — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
scatter_default_f32_n1024 tenferro-cuda-eager 8 15 3.999 0
scatter_default_f64_n1024 tenferro-cuda-eager 4 15 2.129 0
cast_default_f32_n1024 tenferro-cuda-eager 16 15 3.383 0
cast_default_f64_n1024 tenferro-cuda-eager 16 15 2.492 0
pad_default_f32_n1048576 tenferro-cuda-eager 32 15 2.908 0
pad_default_f64_n1048576 tenferro-cuda-eager 31 15 3.741 0
slice_default_f32_n1048576 tenferro-cuda-eager — — — EagerSession::slice returns a lazy metadata view; it is not equivalent to the materializing direct slice / torch.slice_copy / JAX slice contract. No copy is added inside its timer.
slice_default_f64_n1048576 tenferro-cuda-eager — — — EagerSession::slice returns a lazy metadata view; it is not equivalent to the materializing direct slice / torch.slice_copy / JAX slice contract. No copy is added inside its timer.
reverse_default_f32_n1048576 tenferro-cuda-eager 64 15 3.897 0
reverse_default_f64_n1048576 tenferro-cuda-eager 32 15 3.374 0
concatenate_default_f32_n1048576 tenferro-cuda-eager 32 15 3.787 0
concatenate_default_f64_n1048576 tenferro-cuda-eager 16 15 3.450 0
extract_diag_default_f32_n1048576 tenferro-cuda-eager 64 15 3.732 0
extract_diag_default_f64_n1048576 tenferro-cuda-eager 64 15 3.738 0
embed_diag_default_f32_n1024 tenferro-cuda-eager 16 15 2.263 0
embed_diag_default_f64_n1024 tenferro-cuda-eager 16 15 2.570 0
tril_default_f32_n1048576 tenferro-cuda-eager 64 15 3.485 0
tril_default_f64_n1048576 tenferro-cuda-eager 32 15 3.061 0
triu_default_f32_n1048576 tenferro-cuda-eager 64 15 3.509 0
triu_default_f64_n1048576 tenferro-cuda-eager 32 15 3.064 0
take_along_axis_broadcast_indices_f32_n1048576 tenferro-cuda-eager 16 15 2.138 0
take_along_axis_batched_indices_f32_n1048576 tenferro-cuda-eager — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
take_along_axis_broadcast_indices_f64_n1048576 tenferro-cuda-eager 32 15 3.729 0
take_along_axis_batched_indices_f64_n1048576 tenferro-cuda-eager — — — CUDA implementation checked numerically only: batch-coordinate construction uploads scalar constants inside take_along_axis; unavailable under setup-free timing policy.
scatter_default_f32_n1048576 tenferro-cuda-eager 16 15 2.394 0
scatter_default_f64_n1048576 tenferro-cuda-eager 16 15 3.905 0
cast_default_f32_n1048576 tenferro-cuda-eager 32 15 2.222 0
cast_default_f64_n1048576 tenferro-cuda-eager 32 15 3.030 0
broadcast_in_dim_f32_n1024 tenferro-cuda-eager — — — Eager broadcast returns a lazy broadcast view, not the materialized full output required by this case.
broadcast_in_dim_f64_n1024 tenferro-cuda-eager — — — Eager broadcast returns a lazy broadcast view, not the materialized full output required by this case.
convert_f32_f64_n1024 tenferro-cuda-eager 16 15 2.528 0
broadcast_in_dim_f32_n1048576 tenferro-cuda-eager — — — Eager broadcast returns a lazy broadcast view, not the materialized full output required by this case.
broadcast_in_dim_f64_n1048576 tenferro-cuda-eager — — — Eager broadcast returns a lazy broadcast view, not the materialized full output required by this case.
convert_f32_f64_n1048576 tenferro-cuda-eager 32 15 2.227 0
dynamic_slice_in_bounds_f32_n1024 tenferro-cuda-eager 8 15 2.851 0
dynamic_slice_clamped_f32_n1024 tenferro-cuda-eager 8 15 4.562 0
gather_axis0_f32_n1024 tenferro-cuda-eager 64 15 2.154 0
gather_axis1_f32_n1024 tenferro-cuda-eager 64 15 2.156 0
dynamic_slice_in_bounds_f64_n1024 tenferro-cuda-eager 8 15 3.904 0
dynamic_slice_clamped_f64_n1024 tenferro-cuda-eager 8 15 4.566 0
gather_axis0_f64_n1024 tenferro-cuda-eager 64 15 2.207 0
gather_axis1_f64_n1024 tenferro-cuda-eager 64 15 2.405 0
dynamic_slice_in_bounds_f32_n1048576 tenferro-cuda-eager 4 15 2.293 0
dynamic_slice_clamped_f32_n1048576 tenferro-cuda-eager 4 15 3.200 0
gather_axis0_f32_n1048576 tenferro-cuda-eager 64 15 2.754 0
gather_axis1_f32_n1048576 tenferro-cuda-eager 64 15 1.975 0
dynamic_slice_in_bounds_f64_n1048576 tenferro-cuda-eager 4 15 2.886 0
dynamic_slice_clamped_f64_n1048576 tenferro-cuda-eager 4 15 2.922 0
gather_axis0_f64_n1048576 tenferro-cuda-eager 64 15 3.014 0
gather_axis1_f64_n1048576 tenferro-cuda-eager 64 15 2.211 0
pad_interior_f32_n1024 tenferro-cuda-eager 4 15 2.094 0
pad_crop_f32_n1024 tenferro-cuda-eager 8 15 4.550 0
pad_interior_crop_f32_n1024 tenferro-cuda-eager 4 15 1.969 0
pad_interior_f64_n1024 tenferro-cuda-eager 8 15 2.630 0
pad_crop_f64_n1024 tenferro-cuda-eager 8 15 3.032 0
pad_interior_crop_f64_n1024 tenferro-cuda-eager 8 15 2.675 0
pad_interior_f32_n1048576 tenferro-cuda-eager 8 15 2.966 0
pad_crop_f32_n1048576 tenferro-cuda-eager 32 15 2.924 0
pad_interior_crop_f32_n1048576 tenferro-cuda-eager 8 15 2.825 0
pad_interior_f64_n1048576 tenferro-cuda-eager 5 15 1.978 0
pad_crop_f64_n1048576 tenferro-cuda-eager 32 15 3.750 0
pad_interior_crop_f64_n1048576 tenferro-cuda-eager 5 15 1.892 0
reshape_copy_f32_n1024 tenferro-cuda-eager 32 15 4.095 0
stack_axis0_f32_n1024 tenferro-cuda-eager 4 15 3.099 0
stack_axis2_f32_n1024 tenferro-cuda-eager 4 15 3.353 0
reshape_copy_f64_n1024 tenferro-cuda-eager 16 15 2.385 0
stack_axis0_f64_n1024 tenferro-cuda-eager 4 15 2.762 0
stack_axis2_f64_n1024 tenferro-cuda-eager 4 15 3.362 0
reshape_copy_c32_n1024 tenferro-cuda-eager 16 15 2.341 0
stack_axis0_c32_n1024 tenferro-cuda-eager 4 15 3.396 0
stack_axis2_c32_n1024 tenferro-cuda-eager 4 15 3.544 0
reshape_copy_c64_n1024 tenferro-cuda-eager 16 15 2.184 0
stack_axis0_c64_n1024 tenferro-cuda-eager 4 15 2.827 0
stack_axis2_c64_n1024 tenferro-cuda-eager 4 15 2.889 0
reshape_copy_i32_n1024 tenferro-cuda-eager 16 15 2.128 0
stack_axis0_i32_n1024 tenferro-cuda-eager 8 15 4.019 0
stack_axis2_i32_n1024 tenferro-cuda-eager 4 15 2.345 0
reshape_copy_i64_n1024 tenferro-cuda-eager 16 15 2.212 0
stack_axis0_i64_n1024 tenferro-cuda-eager 2 15 1.869 0
stack_axis2_i64_n1024 tenferro-cuda-eager 4 15 3.407 0
reshape_copy_f32_n1048576 tenferro-cuda-eager 64 15 3.538 0
stack_axis0_f32_n1048576 tenferro-cuda-eager 16 15 3.302 0
stack_axis2_f32_n1048576 tenferro-cuda-eager 16 15 3.192 0
reshape_copy_f64_n1048576 tenferro-cuda-eager 32 15 1.766 0
stack_axis0_f64_n1048576 tenferro-cuda-eager 8 15 3.125 0
stack_axis2_f64_n1048576 tenferro-cuda-eager 8 15 2.612 0
reshape_copy_c32_n1048576 tenferro-cuda-eager 32 15 1.770 0
stack_axis0_c32_n1048576 tenferro-cuda-eager 8 15 3.133 0
stack_axis2_c32_n1048576 tenferro-cuda-eager 8 15 2.621 0
reshape_copy_c64_n1048576 tenferro-cuda-eager 16 15 1.707 0
stack_axis0_c64_n1048576 tenferro-cuda-eager 4 15 3.056 0
stack_axis2_c64_n1048576 tenferro-cuda-eager 4 15 2.535 0
reshape_copy_i32_n1048576 tenferro-cuda-eager 64 15 1.991 0
stack_axis0_i32_n1048576 tenferro-cuda-eager 16 15 3.353 0
stack_axis2_i32_n1048576 tenferro-cuda-eager 16 15 3.111 0
reshape_copy_i64_n1048576 tenferro-cuda-eager 32 15 1.888 0
stack_axis0_i64_n1048576 tenferro-cuda-eager 8 15 3.232 0
stack_axis2_i64_n1048576 tenferro-cuda-eager 8 15 2.724 0
pad_default_f32_n1024 pytorch-cuda 128 15 3.502 0
pad_default_f64_n1024 pytorch-cuda 128 15 3.443 0
slice_default_f32_n1024 pytorch-cuda 128 15 2.809 0
slice_default_f64_n1024 pytorch-cuda 128 15 2.885 0
reverse_default_f32_n1024 pytorch-cuda 256 15 3.155 0
reverse_default_f64_n1024 pytorch-cuda 256 15 3.300 0
concatenate_default_f32_n1024 pytorch-cuda 256 15 3.030 0
concatenate_default_f64_n1024 pytorch-cuda 256 15 3.036 0
extract_diag_default_f32_n1024 pytorch-cuda 128 15 2.108 0
extract_diag_default_f64_n1024 pytorch-cuda 128 15 2.083 0
embed_diag_default_f32_n32 pytorch-cuda 128 15 2.970 0
embed_diag_default_f64_n32 pytorch-cuda 128 15 2.821 0
tril_default_f32_n1024 pytorch-cuda 256 15 1.994 0
tril_default_f64_n1024 pytorch-cuda 256 15 2.000 0
triu_default_f32_n1024 pytorch-cuda 512 15 3.972 0
triu_default_f64_n1024 pytorch-cuda 256 15 1.993 0
take_along_axis_broadcast_indices_f32_n1024 pytorch-cuda 64 15 2.416 0
take_along_axis_batched_indices_f32_n1024 pytorch-cuda 64 15 2.502 0
take_along_axis_broadcast_indices_f64_n1024 pytorch-cuda 64 15 2.574 0
take_along_axis_batched_indices_f64_n1024 pytorch-cuda 64 15 2.368 0
scatter_default_f32_n1024 pytorch-cuda 128 15 3.149 0
scatter_default_f64_n1024 pytorch-cuda 128 15 3.184 0
cast_default_f32_n1024 pytorch-cuda 256 15 3.199 0
cast_default_f64_n1024 pytorch-cuda 256 15 3.161 0
pad_default_f32_n1048576 pytorch-cuda 63 15 2.681 0
pad_default_f64_n1048576 pytorch-cuda 31 15 2.497 0
slice_default_f32_n1048576 pytorch-cuda 128 15 3.007 0
slice_default_f64_n1048576 pytorch-cuda 64 15 1.826 0
reverse_default_f32_n1048576 pytorch-cuda 64 15 1.847 0
reverse_default_f64_n1048576 pytorch-cuda 32 15 1.741 0
concatenate_default_f32_n1048576 pytorch-cuda 32 15 1.734 0
concatenate_default_f64_n1048576 pytorch-cuda 16 15 1.688 0
extract_diag_default_f32_n1048576 pytorch-cuda 128 15 2.139 0
extract_diag_default_f64_n1048576 pytorch-cuda 128 15 2.152 0
embed_diag_default_f32_n1024 pytorch-cuda 64 15 1.547 0
embed_diag_default_f64_n1024 pytorch-cuda 32 15 0.954 0
tril_default_f32_n1048576 pytorch-cuda 64 15 1.454 0
tril_default_f64_n1048576 pytorch-cuda 32 15 1.346 0
triu_default_f32_n1048576 pytorch-cuda 64 15 1.443 0
triu_default_f64_n1048576 pytorch-cuda 32 15 1.340 0
take_along_axis_broadcast_indices_f32_n1048576 pytorch-cuda 64 15 3.224 0
take_along_axis_batched_indices_f32_n1048576 pytorch-cuda 32 15 2.029 0
take_along_axis_broadcast_indices_f64_n1048576 pytorch-cuda 32 15 2.237 0
take_along_axis_batched_indices_f64_n1048576 pytorch-cuda 32 15 2.624 0
scatter_default_f32_n1048576 pytorch-cuda 32 15 2.395 0
scatter_default_f64_n1048576 pytorch-cuda 16 15 2.115 0
cast_default_f32_n1048576 pytorch-cuda 32 15 1.320 0
cast_default_f64_n1048576 pytorch-cuda 64 15 2.588 0
broadcast_in_dim_f32_n1024 pytorch-cuda 128 15 2.218 0
broadcast_in_dim_f64_n1024 pytorch-cuda 128 15 2.113 0
convert_f32_f64_n1024 pytorch-cuda 256 15 3.244 0
broadcast_in_dim_f32_n1048576 pytorch-cuda 64 15 1.121 0
broadcast_in_dim_f64_n1048576 pytorch-cuda 32 15 0.899 0
convert_f32_f64_n1048576 pytorch-cuda 32 15 1.322 0
dynamic_slice_in_bounds_f32_n1024 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
dynamic_slice_clamped_f32_n1024 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
gather_axis0_f32_n1024 pytorch-cuda 256 15 3.003 0
gather_axis1_f32_n1024 pytorch-cuda 256 15 2.896 0
dynamic_slice_in_bounds_f64_n1024 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
dynamic_slice_clamped_f64_n1024 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
gather_axis0_f64_n1024 pytorch-cuda 256 15 2.952 0
gather_axis1_f64_n1024 pytorch-cuda 256 15 3.013 0
dynamic_slice_in_bounds_f32_n1048576 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
dynamic_slice_clamped_f32_n1048576 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
gather_axis0_f32_n1048576 pytorch-cuda 128 15 2.902 0
gather_axis1_f32_n1048576 pytorch-cuda 128 15 2.916 0
dynamic_slice_in_bounds_f64_n1048576 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
dynamic_slice_clamped_f64_n1048576 pytorch-cuda — — — No matched single materializing multidimensional slice API with CUDA-resident start indices and clamping; index construction/composed slicing is not substituted.
gather_axis0_f64_n1048576 pytorch-cuda 64 15 1.802 0
gather_axis1_f64_n1048576 pytorch-cuda 64 15 2.672 0
pad_interior_f32_n1024 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
pad_crop_f32_n1024 pytorch-cuda 128 15 3.844 0
pad_interior_crop_f32_n1024 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
pad_interior_f64_n1024 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
pad_crop_f64_n1024 pytorch-cuda 128 15 3.815 0
pad_interior_crop_f64_n1024 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
pad_interior_f32_n1048576 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
pad_crop_f32_n1048576 pytorch-cuda 64 15 2.694 0
pad_interior_crop_f32_n1048576 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
pad_interior_f64_n1048576 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
pad_crop_f64_n1048576 pytorch-cuda 32 15 2.555 0
pad_interior_crop_f64_n1048576 pytorch-cuda — — — PyTorch pad has no single-call interior padding counterpart
reshape_copy_f32_n1024 pytorch-cuda 128 15 2.278 0
stack_axis0_f32_n1024 pytorch-cuda 256 15 3.690 0
stack_axis2_f32_n1024 pytorch-cuda 256 15 3.757 0
reshape_copy_f64_n1024 pytorch-cuda 128 15 2.473 0
stack_axis0_f64_n1024 pytorch-cuda 128 15 1.955 0
stack_axis2_f64_n1024 pytorch-cuda 128 15 1.939 0
reshape_copy_c32_n1024 pytorch-cuda 128 15 2.282 0
stack_axis0_c32_n1024 pytorch-cuda 256 15 3.605 0
stack_axis2_c32_n1024 pytorch-cuda 256 15 3.643 0
reshape_copy_c64_n1024 pytorch-cuda 128 15 2.388 0
stack_axis0_c64_n1024 pytorch-cuda 256 15 3.582 0
stack_axis2_c64_n1024 pytorch-cuda 256 15 3.659 0
reshape_copy_i32_n1024 pytorch-cuda 128 15 2.280 0
stack_axis0_i32_n1024 pytorch-cuda 256 15 3.722 0
stack_axis2_i32_n1024 pytorch-cuda 256 15 3.754 0
reshape_copy_i64_n1024 pytorch-cuda 128 15 2.316 0
stack_axis0_i64_n1024 pytorch-cuda 256 15 3.716 0
stack_axis2_i64_n1024 pytorch-cuda 256 15 3.682 0
reshape_copy_f32_n1048576 pytorch-cuda 64 15 1.760 0
stack_axis0_f32_n1048576 pytorch-cuda 32 15 1.722 0
stack_axis2_f32_n1048576 pytorch-cuda 32 15 2.835 0
reshape_copy_f64_n1048576 pytorch-cuda 32 15 1.703 0
stack_axis0_f64_n1048576 pytorch-cuda 16 15 1.682 0
stack_axis2_f64_n1048576 pytorch-cuda 16 15 2.780 0
reshape_copy_c32_n1048576 pytorch-cuda 32 15 1.704 0
stack_axis0_c32_n1048576 pytorch-cuda 16 15 1.685 0
stack_axis2_c32_n1048576 pytorch-cuda 16 15 2.778 0
reshape_copy_c64_n1048576 pytorch-cuda 16 15 1.670 0
stack_axis0_c64_n1048576 pytorch-cuda 8 15 1.661 0
stack_axis2_c64_n1048576 pytorch-cuda 8 15 2.781 0
reshape_copy_i32_n1048576 pytorch-cuda 64 15 1.767 0
stack_axis0_i32_n1048576 pytorch-cuda 32 15 1.724 0
stack_axis2_i32_n1048576 pytorch-cuda 32 15 2.868 0
reshape_copy_i64_n1048576 pytorch-cuda 32 15 1.699 0
stack_axis0_i64_n1048576 pytorch-cuda 16 15 1.681 0
stack_axis2_i64_n1048576 pytorch-cuda 16 15 2.777 0
pad_default_f32_n1024 jax-cuda 32 15 3.647 0
pad_default_f64_n1024 jax-cuda 16 15 2.184 0
slice_default_f32_n1024 jax-cuda 16 15 2.235 0
slice_default_f64_n1024 jax-cuda 16 15 2.243 0
reverse_default_f32_n1024 jax-cuda 32 15 3.105 0
reverse_default_f64_n1024 jax-cuda 32 15 3.021 0
concatenate_default_f32_n1024 jax-cuda 16 15 2.561 0
concatenate_default_f64_n1024 jax-cuda 16 15 2.490 0
extract_diag_default_f32_n1024 jax-cuda 32 15 2.644 0
extract_diag_default_f64_n1024 jax-cuda 32 15 2.623 0
embed_diag_default_f32_n32 jax-cuda 32 15 2.753 0
embed_diag_default_f64_n32 jax-cuda 32 15 2.845 0
tril_default_f32_n1024 jax-cuda 32 15 2.574 0
tril_default_f64_n1024 jax-cuda 32 15 2.529 0
triu_default_f32_n1024 jax-cuda 32 15 2.537 0
triu_default_f64_n1024 jax-cuda 32 15 2.558 0
take_along_axis_broadcast_indices_f32_n1024 jax-cuda 32 15 2.634 0
take_along_axis_batched_indices_f32_n1024 jax-cuda 32 15 2.657 0
take_along_axis_broadcast_indices_f64_n1024 jax-cuda 32 15 2.650 0
take_along_axis_batched_indices_f64_n1024 jax-cuda 32 15 2.763 0
scatter_default_f32_n1024 jax-cuda 16 15 2.892 0
scatter_default_f64_n1024 jax-cuda 16 15 2.698 0
cast_default_f32_n1024 jax-cuda 16 15 2.265 0
cast_default_f64_n1024 jax-cuda 16 15 2.275 0
pad_default_f32_n1048576 jax-cuda 16 15 1.856 0
pad_default_f64_n1048576 jax-cuda 16 15 1.849 0
slice_default_f32_n1048576 jax-cuda 32 15 3.497 0
slice_default_f64_n1048576 jax-cuda 32 15 3.405 0
reverse_default_f32_n1048576 jax-cuda 32 15 2.540 0
reverse_default_f64_n1048576 jax-cuda 32 15 2.531 0
concatenate_default_f32_n1048576 jax-cuda 16 15 2.288 0
concatenate_default_f64_n1048576 jax-cuda 16 15 2.370 0
extract_diag_default_f32_n1048576 jax-cuda 32 15 2.408 0
extract_diag_default_f64_n1048576 jax-cuda 32 15 2.685 0
embed_diag_default_f32_n1024 jax-cuda 32 15 2.571 0
embed_diag_default_f64_n1024 jax-cuda 32 15 2.503 0
tril_default_f32_n1048576 jax-cuda 32 15 2.272 0
tril_default_f64_n1048576 jax-cuda 32 15 2.208 0
triu_default_f32_n1048576 jax-cuda 32 15 2.232 0
triu_default_f64_n1048576 jax-cuda 32 15 2.088 0
take_along_axis_broadcast_indices_f32_n1048576 jax-cuda 32 15 2.602 0
take_along_axis_batched_indices_f32_n1048576 jax-cuda 32 15 2.604 0
take_along_axis_broadcast_indices_f64_n1048576 jax-cuda 32 15 2.671 0
take_along_axis_batched_indices_f64_n1048576 jax-cuda 32 15 2.641 0
scatter_default_f32_n1048576 jax-cuda 16 15 2.550 0
scatter_default_f64_n1048576 jax-cuda 16 15 2.628 0
cast_default_f32_n1048576 jax-cuda 16 15 2.060 0
cast_default_f64_n1048576 jax-cuda 16 15 1.998 0
broadcast_in_dim_f32_n1024 jax-cuda 32 15 3.244 0
broadcast_in_dim_f64_n1024 jax-cuda 32 15 3.254 0
convert_f32_f64_n1024 jax-cuda 32 15 3.820 0
broadcast_in_dim_f32_n1048576 jax-cuda 32 15 3.385 0
broadcast_in_dim_f64_n1048576 jax-cuda 32 15 3.351 0
convert_f32_f64_n1048576 jax-cuda 16 15 2.013 0
dynamic_slice_in_bounds_f32_n1024 jax-cuda 16 15 2.407 0
dynamic_slice_clamped_f32_n1024 jax-cuda 16 15 2.038 0
gather_axis0_f32_n1024 jax-cuda 16 15 1.976 0
gather_axis1_f32_n1024 jax-cuda 16 15 2.158 0
dynamic_slice_in_bounds_f64_n1024 jax-cuda 16 15 2.486 0
dynamic_slice_clamped_f64_n1024 jax-cuda 16 15 2.071 0
gather_axis0_f64_n1024 jax-cuda 16 15 2.044 0
gather_axis1_f64_n1024 jax-cuda 16 15 2.196 0
dynamic_slice_in_bounds_f32_n1048576 jax-cuda 16 15 2.479 0
dynamic_slice_clamped_f32_n1048576 jax-cuda 16 15 2.017 0
gather_axis0_f32_n1048576 jax-cuda 32 15 3.697 0
gather_axis1_f32_n1048576 jax-cuda 16 15 1.915 0
dynamic_slice_in_bounds_f64_n1048576 jax-cuda 16 15 2.201 0
dynamic_slice_clamped_f64_n1048576 jax-cuda 16 15 2.069 0
gather_axis0_f64_n1048576 jax-cuda 32 15 3.681 0
gather_axis1_f64_n1048576 jax-cuda 16 15 2.062 0
pad_interior_f32_n1024 jax-cuda 32 15 3.438 0
pad_crop_f32_n1024 jax-cuda 32 15 3.634 0
pad_interior_crop_f32_n1024 jax-cuda 32 15 3.727 0
pad_interior_f64_n1024 jax-cuda 16 15 2.173 0
pad_crop_f64_n1024 jax-cuda 16 15 2.390 0
pad_interior_crop_f64_n1024 jax-cuda 16 15 2.732 0
pad_interior_f32_n1048576 jax-cuda 10 15 1.164 0
pad_crop_f32_n1048576 jax-cuda 32 15 3.457 0
pad_interior_crop_f32_n1048576 jax-cuda 10 15 1.131 0
pad_interior_f64_n1048576 jax-cuda 5 15 1.097 0
pad_crop_f64_n1048576 jax-cuda 32 15 3.452 0
pad_interior_crop_f64_n1048576 jax-cuda 5 15 1.075 0
reshape_copy_f32_n1024 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f32_n1024 jax-cuda 16 15 2.227 0
stack_axis2_f32_n1024 jax-cuda 16 15 2.333 0
reshape_copy_f64_n1024 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f64_n1024 jax-cuda 16 15 2.491 0
stack_axis2_f64_n1024 jax-cuda 16 15 2.498 0
reshape_copy_c32_n1024 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c32_n1024 jax-cuda 16 15 2.582 0
stack_axis2_c32_n1024 jax-cuda 16 15 2.525 0
reshape_copy_c64_n1024 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c64_n1024 jax-cuda 16 15 2.580 0
stack_axis2_c64_n1024 jax-cuda 16 15 2.553 0
reshape_copy_i32_n1024 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i32_n1024 jax-cuda 16 15 2.628 0
stack_axis2_i32_n1024 jax-cuda 16 15 2.358 0
reshape_copy_i64_n1024 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i64_n1024 jax-cuda 16 15 2.194 0
stack_axis2_i64_n1024 jax-cuda 16 15 2.177 0
reshape_copy_f32_n1048576 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f32_n1048576 jax-cuda 16 15 2.241 0
stack_axis2_f32_n1048576 jax-cuda 16 15 2.273 0
reshape_copy_f64_n1048576 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f64_n1048576 jax-cuda 16 15 2.301 0
stack_axis2_f64_n1048576 jax-cuda 16 15 2.261 0
reshape_copy_c32_n1048576 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c32_n1048576 jax-cuda 16 15 2.483 0
stack_axis2_c32_n1048576 jax-cuda 16 15 2.373 0
reshape_copy_c64_n1048576 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c64_n1048576 jax-cuda 8 15 2.016 0
stack_axis2_c64_n1048576 jax-cuda 8 15 1.945 0
reshape_copy_i32_n1048576 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i32_n1048576 jax-cuda 16 15 2.361 0
stack_axis2_i32_n1048576 jax-cuda 16 15 2.480 0
reshape_copy_i64_n1048576 jax-cuda — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i64_n1048576 jax-cuda 16 15 2.709 0
stack_axis2_i64_n1048576 jax-cuda 16 15 2.643 0
pad_default_f32_n1024 jax-cuda-jit 32 15 2.739 0
pad_default_f64_n1024 jax-cuda-jit 32 15 2.673 0
slice_default_f32_n1024 jax-cuda-jit 32 15 2.676 0
slice_default_f64_n1024 jax-cuda-jit 32 15 2.565 0
reverse_default_f32_n1024 jax-cuda-jit 32 15 2.555 0
reverse_default_f64_n1024 jax-cuda-jit 32 15 2.379 0
concatenate_default_f32_n1024 jax-cuda-jit 32 15 2.479 0
concatenate_default_f64_n1024 jax-cuda-jit 32 15 2.554 0
extract_diag_default_f32_n1024 jax-cuda-jit 32 15 2.394 0
extract_diag_default_f64_n1024 jax-cuda-jit 32 15 2.481 0
embed_diag_default_f32_n32 jax-cuda-jit 32 15 2.488 0
embed_diag_default_f64_n32 jax-cuda-jit 32 15 2.241 0
tril_default_f32_n1024 jax-cuda-jit 32 15 2.403 0
tril_default_f64_n1024 jax-cuda-jit 32 15 2.591 0
triu_default_f32_n1024 jax-cuda-jit 32 15 2.431 0
triu_default_f64_n1024 jax-cuda-jit 32 15 2.576 0
take_along_axis_broadcast_indices_f32_n1024 jax-cuda-jit 32 15 2.667 0
take_along_axis_batched_indices_f32_n1024 jax-cuda-jit 32 15 2.683 0
take_along_axis_broadcast_indices_f64_n1024 jax-cuda-jit 32 15 2.659 0
take_along_axis_batched_indices_f64_n1024 jax-cuda-jit 32 15 2.739 0
scatter_default_f32_n1024 jax-cuda-jit 32 15 3.053 0
scatter_default_f64_n1024 jax-cuda-jit 32 15 2.945 0
cast_default_f32_n1024 jax-cuda-jit 32 15 2.458 0
cast_default_f64_n1024 jax-cuda-jit 32 15 2.402 0
pad_default_f32_n1048576 jax-cuda-jit 32 15 2.339 0
pad_default_f64_n1048576 jax-cuda-jit 31 15 2.100 0
slice_default_f32_n1048576 jax-cuda-jit 32 15 2.319 0
slice_default_f64_n1048576 jax-cuda-jit 32 15 2.348 0
reverse_default_f32_n1048576 jax-cuda-jit 32 15 2.294 0
reverse_default_f64_n1048576 jax-cuda-jit 32 15 2.164 0
concatenate_default_f32_n1048576 jax-cuda-jit 32 15 2.227 0
concatenate_default_f64_n1048576 jax-cuda-jit 16 15 1.837 0
extract_diag_default_f32_n1048576 jax-cuda-jit 32 15 2.325 0
extract_diag_default_f64_n1048576 jax-cuda-jit 32 15 2.406 0
embed_diag_default_f32_n1024 jax-cuda-jit 32 15 2.298 0
embed_diag_default_f64_n1024 jax-cuda-jit 32 15 2.344 0
tril_default_f32_n1048576 jax-cuda-jit 32 15 2.276 0
tril_default_f64_n1048576 jax-cuda-jit 32 15 2.207 0
triu_default_f32_n1048576 jax-cuda-jit 32 15 2.368 0
triu_default_f64_n1048576 jax-cuda-jit 32 15 2.310 0
take_along_axis_broadcast_indices_f32_n1048576 jax-cuda-jit 32 15 2.660 0
take_along_axis_batched_indices_f32_n1048576 jax-cuda-jit 32 15 2.437 0
take_along_axis_broadcast_indices_f64_n1048576 jax-cuda-jit 32 15 2.684 0
take_along_axis_batched_indices_f64_n1048576 jax-cuda-jit 32 15 2.695 0
scatter_default_f32_n1048576 jax-cuda-jit 32 15 2.680 0
scatter_default_f64_n1048576 jax-cuda-jit 16 15 2.278 0
cast_default_f32_n1048576 jax-cuda-jit 32 15 2.185 0
cast_default_f64_n1048576 jax-cuda-jit 32 15 2.147 0
broadcast_in_dim_f32_n1024 jax-cuda-jit 32 15 2.840 0
broadcast_in_dim_f64_n1024 jax-cuda-jit 32 15 2.745 0
convert_f32_f64_n1024 jax-cuda-jit 32 15 2.631 0
broadcast_in_dim_f32_n1048576 jax-cuda-jit 32 15 2.520 0
broadcast_in_dim_f64_n1048576 jax-cuda-jit 32 15 2.571 0
convert_f32_f64_n1048576 jax-cuda-jit 32 15 2.506 0
dynamic_slice_in_bounds_f32_n1024 jax-cuda-jit 32 15 2.872 0
dynamic_slice_clamped_f32_n1024 jax-cuda-jit 32 15 2.872 0
gather_axis0_f32_n1024 jax-cuda-jit 32 15 2.819 0
gather_axis1_f32_n1024 jax-cuda-jit 32 15 2.797 0
dynamic_slice_in_bounds_f64_n1024 jax-cuda-jit 32 15 2.803 0
dynamic_slice_clamped_f64_n1024 jax-cuda-jit 32 15 2.857 0
gather_axis0_f64_n1024 jax-cuda-jit 32 15 2.758 0
gather_axis1_f64_n1024 jax-cuda-jit 32 15 2.787 0
dynamic_slice_in_bounds_f32_n1048576 jax-cuda-jit 32 15 2.864 0
dynamic_slice_clamped_f32_n1048576 jax-cuda-jit 32 15 2.694 0
gather_axis0_f32_n1048576 jax-cuda-jit 32 15 2.673 0
gather_axis1_f32_n1048576 jax-cuda-jit 32 15 2.678 0
dynamic_slice_in_bounds_f64_n1048576 jax-cuda-jit 32 15 2.706 0
dynamic_slice_clamped_f64_n1048576 jax-cuda-jit 32 15 2.686 0
gather_axis0_f64_n1048576 jax-cuda-jit 32 15 2.665 0
gather_axis1_f64_n1048576 jax-cuda-jit 32 15 2.628 0
pad_interior_f32_n1024 jax-cuda-jit 32 15 2.700 0
pad_crop_f32_n1024 jax-cuda-jit 32 15 2.780 0
pad_interior_crop_f32_n1024 jax-cuda-jit 32 15 2.904 0
pad_interior_f64_n1024 jax-cuda-jit 32 15 3.098 0
pad_crop_f64_n1024 jax-cuda-jit 32 15 3.253 0
pad_interior_crop_f64_n1024 jax-cuda-jit 32 15 3.223 0
pad_interior_f32_n1048576 jax-cuda-jit 10 15 1.035 0
pad_crop_f32_n1048576 jax-cuda-jit 32 15 2.564 0
pad_interior_crop_f32_n1048576 jax-cuda-jit 10 15 1.041 0
pad_interior_f64_n1048576 jax-cuda-jit 5 15 1.037 0
pad_crop_f64_n1048576 jax-cuda-jit 32 15 2.349 0
pad_interior_crop_f64_n1048576 jax-cuda-jit 5 15 1.071 0
reshape_copy_f32_n1024 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f32_n1024 jax-cuda-jit 32 15 2.720 0
stack_axis2_f32_n1024 jax-cuda-jit 32 15 2.609 0
reshape_copy_f64_n1024 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f64_n1024 jax-cuda-jit 32 15 2.734 0
stack_axis2_f64_n1024 jax-cuda-jit 32 15 2.788 0
reshape_copy_c32_n1024 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c32_n1024 jax-cuda-jit 32 15 2.794 0
stack_axis2_c32_n1024 jax-cuda-jit 32 15 2.817 0
reshape_copy_c64_n1024 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c64_n1024 jax-cuda-jit 32 15 2.667 0
stack_axis2_c64_n1024 jax-cuda-jit 32 15 2.788 0
reshape_copy_i32_n1024 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i32_n1024 jax-cuda-jit 32 15 2.822 0
stack_axis2_i32_n1024 jax-cuda-jit 32 15 2.777 0
reshape_copy_i64_n1024 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i64_n1024 jax-cuda-jit 32 15 2.797 0
stack_axis2_i64_n1024 jax-cuda-jit 32 15 2.671 0
reshape_copy_f32_n1048576 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f32_n1048576 jax-cuda-jit 32 15 2.511 0
stack_axis2_f32_n1048576 jax-cuda-jit 32 15 2.433 0
reshape_copy_f64_n1048576 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_f64_n1048576 jax-cuda-jit 16 15 1.766 0
stack_axis2_f64_n1048576 jax-cuda-jit 16 15 1.764 0
reshape_copy_c32_n1048576 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c32_n1048576 jax-cuda-jit 16 15 1.766 0
stack_axis2_c32_n1048576 jax-cuda-jit 16 15 1.766 0
reshape_copy_c64_n1048576 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_c64_n1048576 jax-cuda-jit 8 15 1.763 0
stack_axis2_c64_n1048576 jax-cuda-jit 8 15 1.782 0
reshape_copy_i32_n1048576 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i32_n1048576 jax-cuda-jit 32 15 2.484 0
stack_axis2_i32_n1048576 jax-cuda-jit 32 15 2.565 0
reshape_copy_i64_n1048576 jax-cuda-jit — — — No established single-call JAX reshape API that guarantees owned output materialization; native reshape may alias input. Reshape plus copy is a different composed contract.
stack_axis0_i64_n1048576 jax-cuda-jit 16 15 1.778 0
stack_axis2_i64_n1048576 jax-cuda-jit 16 15 1.783 0

Run metadata

schema_version: 1
target_profile: nvidia-gpu
suite_id: gpu/structural
suite_file: benchmarks/gpu/structural.yaml
timestamp: '2026-10-13T21:19:55Z'
tenferro_rs:
  path: extern/tenferro-rs
  commit: e04d33dd2ab9f4e392b8cd63d6df2b43efdb54cb
  dirty: false
  features:
  - cuda
  resolved_path: /workspaces/tenferro-benchmark/extern/tenferro-rs
harness:
  path: /workspaces/tenferro-benchmark
  commit: 49f248a55b9080907f84efc5a19edeef4c74de31
  dirty: false
environment:
  hostname: 737f43342de3
  os: Linux-6.8.0-146-generic-x86_64-with-glibc2.39
  arch: x86_64
  cpu: x86_64
  env:
    OMP_NUM_THREADS: '1'
    RAYON_NUM_THREADS: '1'
    BENCHMARK_TARGET_PROFILE: nvidia-gpu
    OPENBLAS_ROOT: /opt/openblas
    OPENBLAS_NUM_THREADS: '1'
    CUDA_HOME: /usr/local/cuda
    CUDA_PATH: /usr/local/cuda
    TENFERRO_CUTENSOR_PATH: /usr/lib/x86_64-linux-gnu/libcutensor/12/libcutensor.so.2
    BENCH_RUNS: '15'
    BENCH_WARMUPS: '3'
    USE_CUDA: '1'
timing_policy:
  version: 2
  scope: operation execution and completion synchronization
  setup: fixtures, H2D, runtime/session/handles, plans and compilation outside every
    timer
  cleanup: returned outputs retained until after timer stops
  minimum_untimed_priming_runs: 1
  short_operation_sampling: adaptive batches target 2 ms, at most 4096 operations
    and 256 MiB retained output; output-reuse destinations prepared before timing
  trace_execution: 'tenferro trace excluded: run_prepared cannot borrow the entered
    session; JAX JIT compilation outside timing'
  setup_diagnostics: false
blas:
  implementation: none
python_backends:
  pytorch:
    available: true
    version: 2.12.0+cu130
    file: /workspaces/tenferro-benchmark/.venv/lib/python3.12/site-packages/torch/__init__.py
    provider: mkl
    blas_info: mkl
    lapack_info: mkl
    config: "PyTorch built with:\n  - GCC 13.3\n  - C++ Version: 202002\n  - Intel(R)\
      \ oneAPI Math Kernel Library Version 2024.2-Product Build 20240605 for Intel(R)\
      \ 64 architecture applications\n  - Intel(R) MKL-DNN v3.11.2 (Git Hash 03c022d3ffdcee958cfacbe720048e725fdf644c)\n\
      \  - OpenMP 201511 (a.k.a. OpenMP 4.5)\n  - LAPACK is enabled (usually provided\
      \ by MKL)\n  - NNPACK is enabled\n  - CPU capability usage: AVX2\n  - CUDA Runtime\
      \ 13.0\n  - NVCC architecture flags: -gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90;-gencode;arch=compute_100,code=sm_100;-gencode;arch=compute_120,code=sm_120\n\
      \  - CuDNN 92.7  (built against CUDA 12.9)\n    - Built with CuDNN 92.0\n  -\
      \ Magma 2.6.1\n  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, COMMIT_SHA=7661cd9c6b841b62b7f411aa52ec51f05457263b,\
      \ CUDA_FLAGS= -DLIBCUDACXX_ENABLE_SIMPLIFIED_COMPLEX_OPERATIONS -Xfatbin -compress-all\
      \ -DONNX_NAMESPACE=onnx_torch -gencode arch=compute_75,code=sm_75 -gencode arch=compute_80,code=sm_80\
      \ -gencode arch=compute_86,code=sm_86 -gencode arch=compute_90,code=sm_90 -gencode\
      \ arch=compute_100,code=sm_100 -gencode arch=compute_120,code=sm_120 -Xcudafe\
      \ --diag_suppress=cc_clobber_ignored,--diag_suppress=field_without_dll_interface,--diag_suppress=base_class_has_different_dll_interface,--diag_suppress=dll_interface_conflict_none_assumed,--diag_suppress=dll_interface_conflict_dllexport_assumed,--diag_suppress=bad_friend_decl\
      \ --expt-relaxed-constexpr --expt-extended-lambda -Xfatbin -compress-all --threads\
      \ 2 -compress-mode=size -Wno-deprecated-gpu-targets --expt-extended-lambda -DCUB_WRAPPED_NAMESPACE=at_cuda_detail\
      \ -DDISABLE_CUSPARSE_DEPRECATED -DCUDA_HAS_FP16=1 -D__CUDA_NO_HALF_OPERATORS__\
      \ -D__CUDA_NO_HALF_CONVERSIONS__ -D__CUDA_NO_HALF2_OPERATORS__ -D__CUDA_NO_BFLOAT16_CONVERSIONS__\
      \ -DC10_NODEPRECATED, CUDA_VERSION=13.0, CUDNN_VERSION=9.20.0, CXX_COMPILER=/opt/rh/gcc-toolset-13/root/usr/bin/c++,\
      \ CXX_FLAGS= -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO\
      \ -DLIBKINETO_NOROCTRACER -DLIBKINETO_NOXPUPTI=ON -DUSE_FBGEMM -DUSE_MSLK -DUSE_PYTORCH_QNNPACK\
      \ -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -DC10_NODEPRECATED\
      \ -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=range-loop-construct\
      \ -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-unknown-pragmas\
      \ -Wno-unused-parameter -Wno-strict-overflow -Wno-strict-aliasing -Wno-stringop-overflow\
      \ -Wsuggest-override -Wno-psabi -Wno-error=old-style-cast -faligned-new -Wno-maybe-uninitialized\
      \ -fno-math-errno -fno-trapping-math -Werror=format -Wno-dangling-reference\
      \ -Wno-error=dangling-reference -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1,\
      \ PERF_WITH_AVX2=1, TORCH_VERSION=2.12.0, USE_CUDA=ON, USE_CUDNN=ON, USE_CUSPARSELT=1,\
      \ USE_GFLAGS=OFF, USE_GLOG=OFF, USE_GLOO=ON, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF,\
      \ USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF, USE_ROCM_KERNEL_ASSERT=OFF,\
      \ USE_XCCL=OFF, USE_XPU=OFF, \n"
    library: /workspaces/tenferro-benchmark/.venv/lib/python3.12/site-packages/torch/lib/libtorch_cpu.so
    linked_libraries:
    - /workspaces/tenferro-benchmark/.venv/lib/python3.12/site-packages/torch/lib/libgomp.so.1
  jax:
    available: true
    version: 0.10.1
    jaxlib_version: 0.10.1
    backend: gpu
    file: /workspaces/tenferro-benchmark/.venv/lib/python3.12/site-packages/jaxlib/__init__.py
    provider: xla_gpu
    dot_backend: xla_gpu
    lapack_provider: none_detected
    library: /workspaces/tenferro-benchmark/.venv/lib/python3.12/site-packages/jaxlib/_ifrt_proxy.so
    linked_libraries: []
julia:
  available: false
  reason: julia not found on PATH
cuda:
  device_ordinal: 0
  device_name: NVIDIA GeForce RTX 3060
  device_uuid: GPU-a78d5217-eba3-72c2-3d5b-8ae496ebbc2e
  device_memory_bytes: 12884901888
  driver_version: 580.178.04
  runtime_version: '12.9'
  cuda_version: '13.0'
  cudnn_version: '92700'
gpu_assignment:
  role: benchmark
  physical_device_index: 0
  device_uuid: GPU-a78d5217-eba3-72c2-3d5b-8ae496ebbc2e
  cuda_visible_devices: GPU-a78d5217-eba3-72c2-3d5b-8ae496ebbc2e
  process_device_ordinal: 0
  verification_only: false
collection:
  command: BENCHMARK_TARGET_PROFILE=nvidia-gpu GPU_BENCH_DEVICE=0 BENCH_RUNS=15 BENCH_WARMUPS=3
    ./scripts/run_gpu_public_api.sh structural
  devcontainer_config: .devcontainer/cuda/devcontainer.json
  expected_cases: 118
  selected_cases: 118
  sha256:
    .devcontainer/cuda/devcontainer.json: 76569d9e898967d094988483a7adf6ab96eb426793db7248545d50e155f19cf1
    .devcontainer/cuda/Dockerfile: 1cadf2f890f01187553bab0f136dc817f8964eff6a35b1806b1448a7383d21de
    src/bin/benchmark_gpu_public_api.rs: 19d46353cb2f682dcda76ef3aa8d7733f39d4843aa38ef6231fd496ec575d6a9
    src/bin/benchmark_gpu_public_api/plan.rs: 3d0f10f390ebd0e08a40deb5a64e49e086dcd41b9a777d3a208c6846ed6b2fac
    src/bin/benchmark_gpu_public_api/runtime_ops.rs: da168bf8b7c30f748f62839cf0bf7cce8f5bccf9c37b1c1d993fd70c466f2f76
    src/bin/benchmark_gpu_public_api/multi.rs: 1b477fef78260cf28aa31e515d57ab411f6241b91ffb30d625939538fdbc6bab
    src/bin/benchmark_gpu_public_api/lifetime.rs: c687a8b0329f6d3073073671b5d246acbb1f4dc3f983d1430da897a908ef1745
    src/bin/benchmark_gpu_public_api/read_layout.rs: 70b1ed632ad52db5654c3d9f3df9fdb20a1e8c48894dbdcb24ce055757f5f7eb
    src/bin/benchmark_gpu_public_api/structural.rs: 6b6c5f3c2e771d527dbab1ae4e9dd0354bd1bb88acbe4fb1292ce8b68b408240
    src/bin/benchmark_gpu_public_api/linalg.rs: 5f5c4afc161f3d6e267861511d0d5871be9192d9968c95b59a73c9dc5a64e22b
    src/bin/benchmark_gpu_public_api/state.rs: af8e9c9b4eb272af9a751d2a0aef9e1f8ff32c5efbd3ffffcf5f76e1e2c9704a
    src/bin/benchmark_gpu_public_api/reuse.rs: 1dc14ac94fac700aa696d0ada04315685e3245738f9514de3d7989b8cb59152b
    /workspaces/tenferro-benchmark/scripts/benchmark_gpu_public_api.py: c5f9507e8971ae14acd540d6c35b305c35b222431ec5aad9830a88bdc32975b0
    /workspaces/tenferro-benchmark/scripts/gpu_public_api_ops.py: e88823db3f4a1fe43dc13c4743c9d78ece6af76a968724091af318dd8d7f2528
    scripts/run_gpu_public_api.sh: dd5e4cc47e85fcb5afdc56d460136b2a399a6a7d6a62005de8ba94afb0119ecc
    data/results/nvidia-gpu/gpu/structural/20261013_211954/fixtures/manifest.json: 6b4532ecb67f54e60c796185be6597f7f29b0ca79754f79e16488a51241e9220
    target/release/benchmark_gpu_public_api: cffb781f4b953aacb5db9e5d0a86a57c6b088cc5161a0e5e384b322e7066a0f5
  reference_numpy_version: 2.4.2