跳转至

Conv & Pool

本页暂无中文版。以下为英文原文。

16 ops, 120 workloads — Pooling 13 · Convolution 3.

One table per op, one row per workload. Ratio is the fastest other implementation's device time divided by ours, so green is faster than it, plain is level with it, red is slower. Times are in ms. How these numbers are taken.

Pooling

AvgPool1dFwd

input: [N, C, L_in]

  • audio-downsampleinput: [4, 128, 4096]kernel_size=3stride=2padding=1dtype=f16, f32
  • long-temporalinput: [2, 256, 32000]kernel_size=5stride=4padding=2dtype=f16
  • ceilinput: [2, 128, 2048]kernel_size=4stride=2padding=1ceil_mode=truecount_include_pad=falsedtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
audio-downsamplef161.11×0.00374torch-compile
torch-ref
0.00416
0.0154
1.1237%lat
f321.01×0.00528torch-compile
torch-ref
0.00534
0.0154
0.79453%lat
long-temporalf161.21×0.0142torch-compile
torch-ref
0.0172
0.0595
1.7364%mem
ceilbf161.44×0.00234torch-compile
torch-ref
0.00336
0.00534
0.56115%lat

AvgPool2dFwd

input: [N, C, H_in, W_in]

stride=[2,2]

  • vision-3x3-s2input: [2, 64, 112, 112]kernel_size=[3,3]padding=[1,1]dtype=f16, f32
  • vision-5x5-s2input: [2, 128, 56, 56]kernel_size=[5,5]padding=[2,2]dtype=f16
  • ceil-divisorinput: [3, 96, 55, 57]kernel_size=[3,5]padding=[1,2]ceil_mode=truecount_include_pad=falsedivisor_override=7dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
vision-3x3-s2f161.19×0.00339torch-compile
flaggems
torch-ref
0.00403
0.00669
0.00918
1.1726%lat
f321.19×0.00442torch-compile
flaggems
torch-ref
0.00525
0.0071
0.00944
0.89940%lat
vision-5x5-s2f161.78×0.00406flaggems
torch-ref
torch-compile
0.00723
0.00986
0.0218
1.2311%lat
ceil-divisorbf161.24×0.00314torch-compile
flaggems
torch-ref
0.0039
0.00586
0.00765
1.1416%lat

AvgPool3dFwd

input: [N, C, D_in, H_in, W_in]

stride=[2,2,2]

  • video-2x2x2input: [1, 32, 16, 56, 56]kernel_size=[2,2,2]padding=[0,0,0]dtype=f16, f32
  • ceil-videoinput: [2, 64, 8, 28, 28]kernel_size=[2,3,3]padding=[1,1,1]ceil_mode=truecount_include_pad=falsedtype=f16
  • divisorinput: [2, 24, 10, 20, 22]kernel_size=[2,2,3]padding=[0,1,1]divisor_override=7dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
video-2x2x2f161.15×0.00298torch-compile
cudnn
torch-ref
0.00342
0.00586
0.00998
0.60727%lat
f321.06×0.00387torch-compile
cudnn
torch-ref
0.0041
0.00653
0.0103
0.46741%lat
ceil-videof161.21×0.00333torch-compile
cudnn
torch-ref
0.00403
0.00566
0.0114
0.58613%lat
divisorbf161.02×0.00192torch-compile
torch-ref
0.00195
0.00509
0.1756%lat

MaxPool1dFwd

input: [N, C, L_in]

  • sincnet-localinput: [32, 80, 4096]kernel_size=3stride=3dtype=f16, f32
  • textcnn-globalinput: [64, 256, 128]kernel_size=128stride=1dtype=f16
  • ecg-cnn-dilatedinput: [16, 128, 2048]kernel_size=5stride=2padding=2dilation=2ceil_mode=truedtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
sincnet-localf161.10×0.0104torch-compile
torch-ref
0.0115
0.0506
160%mem
f321.00×0.0158torch-compile
torch-ref
0.0157
0.0501
0.66579%mem
textcnn-globalf161.10×0.00346torch-compile
torch-ref
0.00381
0.0265
0.60727%lat
ecg-cnn-dilatedbf161.33×0.00595torch-compile
torch-ref
0.0079
0.0354
1.7631%lat

MaxPool1dIndicesFwd

input: [N, C, L_in]

  • sincnet-localinput: [32, 80, 4096]kernel_size=3stride=3dtype=f16, f32
  • textcnn-globalinput: [64, 256, 128]kernel_size=128stride=1dtype=f16
  • ecg-cnn-dilatedinput: [16, 128, 2048]kernel_size=5stride=2padding=2dilation=2ceil_mode=truedtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
sincnet-localf161.03×0.0158torch-compile
torch-ref
0.0163
0.0506
0.66379%mem
f321.00×0.0215torch-compile
torch-ref
0.0216
0.0500
0.48887%mem
textcnn-globalf161.26×0.00461torch-compile
torch-ref
0.00579
0.0265
0.45521%lat
ecg-cnn-dilatedbf161.29×0.0104torch-compile
torch-ref
0.0134
0.0354
1.0154%mem

MaxPool2dFwd

input: [N, C, H_in, W_in]

stride=[2,2]dtype=f16, bf16, f32

  • resnet-steminput: [32, 64, 112, 112]kernel_size=[3,3]padding=[1,1]
  • vgg-blockinput: [16, 128, 56, 56]kernel_size=[2,2]padding=[0,0]
  • alexnet-ceilinput: [32, 64, 55, 55]kernel_size=[3,3]padding=[0,0]ceil_mode=true
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
resnet-stemf161.47×0.0235torch-compile
flaggems
torch-ref
0.0344
0.0788
0.1394
2.4461%mem
bf161.39×0.0248torch-compile
flaggems
torch-ref
0.0344
0.0788
0.1396
2.3158%mem
f321.48×0.0334torch-compile
flaggems
torch-ref
0.0496
0.0816
0.1348
1.7185%mem
vgg-blockf161.19×0.00608torch-compile
flaggems
torch-ref
0.00723
0.0148
0.0278
1.0659%mem
bf161.19×0.00608torch-compile
flaggems
torch-ref
0.00726
0.0148
0.0279
1.0659%mem
f321.04×0.00995torch-compile
flaggems
torch-ref
0.0103
0.0169
0.0277
0.64572%mem
alexnet-ceilf161.27×0.0087torch-compile
flaggems
torch-ref
0.0111
0.0226
0.0348
1.5439%mem
bf161.27×0.00874torch-compile
flaggems
torch-ref
0.0111
0.0225
0.0348
1.5439%mem
f321.27×0.0123torch-compile
flaggems
torch-ref
0.0155
0.0229
0.0342
1.156%mem

MaxPool2dIndicesFwd

input: [N, C, H_in, W_in]

stride=[2,2]dtype=f16, bf16, f32

  • resnet-steminput: [32, 64, 112, 112]kernel_size=[3,3]padding=[1,1]
  • vgg-blockinput: [16, 128, 56, 56]kernel_size=[2,2]padding=[0,0]
  • alexnet-ceilinput: [32, 64, 55, 55]kernel_size=[3,3]padding=[0,0]ceil_mode=true
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
resnet-stemf162.21×0.0315torch-compile
flaggems
torch-ref
0.0695
0.0789
0.1393
1.8282%mem
bf162.16×0.0324torch-compile
flaggems
torch-ref
0.0701
0.0788
0.1397
1.7679%mem
f321.52×0.0473torch-compile
flaggems
torch-ref
0.0721
0.0813
0.1349
1.2184%mem
vgg-blockf161.09×0.00986torch-compile
flaggems
torch-ref
0.0108
0.0148
0.0278
0.65265%mem
bf161.25×0.00982torch-compile
flaggems
torch-ref
0.0123
0.0148
0.0279
0.65465%mem
f320.99×0.0131torch-compile
flaggems
torch-ref
0.0129
0.0169
0.0277
0.49176%mem
alexnet-ceilf161.59×0.0112torch-compile
flaggems
torch-ref
0.0178
0.0226
0.0347
1.254%mem
bf161.58×0.0111torch-compile
flaggems
torch-ref
0.0175
0.0226
0.0348
1.2155%mem
f321.32×0.0147torch-compile
flaggems
torch-ref
0.0194
0.0229
0.0342
0.91364%mem

MaxPool3dFwd

input: [N, C, D_in, H_in, W_in]

  • c3d-pool1input: [8, 64, 16, 112, 112]kernel_size=[1,2,2]stride=[1,2,2]padding=[0,0,0]dtype=f16, f32
  • c3d-pool2input: [4, 128, 16, 56, 56]kernel_size=[2,2,2]stride=[2,2,2]padding=[0,0,0]dtype=f16
  • medicalnet-steminput: [2, 64, 32, 112, 112]kernel_size=[3,3,3]stride=[2,2,2]padding=[1,1,1]ceil_mode=truedtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
c3d-pool1f161.04×0.0751torch-compile
cudnn
torch-ref
0.0783
0.3043
0.5201
1.3776%mem
f321.00×0.1211torch-compile
cudnn
torch-ref
0.1208
0.3466
0.5261
0.84994%mem
c3d-pool2f161.03×0.0240torch-compile
cudnn
torch-ref
0.0248
0.0619
0.0951
1.0753%mem
medicalnet-stembf162.68×0.0997cudnn
torch-ref
torch-compile
0.2669
0.3359
0.9276
1.7426%mem

MaxPool3dIndicesFwd

input: [N, C, D_in, H_in, W_in]

  • c3d-pool1input: [8, 64, 16, 112, 112]kernel_size=[1,2,2]stride=[1,2,2]padding=[0,0,0]dtype=f16, f32
  • c3d-pool2input: [4, 128, 16, 56, 56]kernel_size=[2,2,2]stride=[2,2,2]padding=[0,0,0]dtype=f16
  • medicalnet-steminput: [2, 64, 32, 112, 112]kernel_size=[3,3,3]stride=[2,2,2]padding=[1,1,1]ceil_mode=truedtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
c3d-pool1f161.07×0.1224torch-compile
torch-ref
0.1305
0.5201
0.8484%mem
f321.00×0.1667torch-compile
torch-ref
0.1668
0.5260
0.61696%mem
c3d-pool2f161.20×0.0274torch-compile
torch-ref
0.0329
0.0950
0.93968%mem
medicalnet-stembf1615.63×0.1304torch-ref
torch-compile
0.3359
2.0378
1.3330%mem

AdaptiveAvgPool2dFwd

input: [*B, C, H_in, W_in]

  • resnet-gapinput: [8, 2048, 7, 7]output_size=[1,1]dtype=f16
  • spp-6x6input: [2, 128, 56, 56]output_size=[6,6]dtype=f16
  • nondiv-7x7input: [2, 64, 55, 57]output_size=[7,7]dtype=bf16
  • resnet-gap-unbatchedinput: [2048, 7, 7]output_size=[1,1]dtype=f16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
resnet-gapf161.27×0.00294torch-compile
torch-ref
0.00374
0.0073
0.27312%lat
spp-6x6f161.96×0.00546torch-compile
torch-ref
0.0107
0.0108
0.1697%lat
nondiv-7x7bf161.39×0.00669torch-ref
torch-compile
0.00925
0.00928
0.07363%lat
resnet-gap-unbatchedf162.00×0.00243torch-ref
torch-compile
0.00317
0.00486
0.04132%lat

AdaptiveMaxPool2dFwd

input: [*B, C, H_in, W_in]

  • global-1x1input: [8, 2048, 7, 7]output_size=[1,1]dtype=f16
  • spp-6x6input: [2, 128, 56, 56]output_size=[6,6]dtype=f16
  • nondiv-7x7input: [2, 64, 55, 57]output_size=[7,7]dtype=bf16
  • global-1x1-unbatchedinput: [2048, 7, 7]output_size=[1,1]dtype=f16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
global-1x1f162.17×0.00278torch-compile
torch-ref
0.00605
0.0445
0.28813%lat
spp-6x6f164.06×0.00355torch-ref
torch-compile
0.0144
0.0144
0.25910%lat
nondiv-7x7bf163.43×0.00338torch-compile
torch-ref
0.0116
0.0116
0.1465%lat
global-1x1-unbatchedf161.05×0.00192torch-compile
torch-ref
0.00202
0.0128
0.05232%lat

AdaptiveMaxPool2dIndicesFwd

input: [*B, C, H_in, W_in]

  • global-1x1input: [8, 2048, 7, 7]output_size=[1,1]dtype=f16
  • spp-6x6input: [2, 128, 56, 56]output_size=[6,6]dtype=f16
  • nondiv-7x7input: [2, 64, 55, 57]output_size=[7,7]dtype=bf16
  • global-1x1-unbatchedinput: [2048, 7, 7]output_size=[1,1]dtype=f16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
global-1x1f162.91×0.00282torch-compile
torch-ref
0.00819
0.0446
0.28514%lat
spp-6x6f163.99×0.00362torch-ref
torch-compile
0.0144
0.0144
0.25510%lat
nondiv-7x7bf163.32×0.00349torch-compile
torch-ref
0.0116
0.0116
0.1416%lat
global-1x1-unbatchedf161.56×0.00205torch-compile
torch-ref
0.0032
0.0128
0.0492%lat

MeanPoolingFwd

x: [B, S, H, D]

chunk_size=64

  • uniform-8kx: [1, 8192, 64, 128]dtype=f16/f32, bf16/f32
  • uniform-batchedx: [2, 2048, 64, 128]dtype=f16/f32

x: [B, S, H, D]offsets: [NS + 1], i32indices: [NC, 2], i32

  • ragged-evenx: [1, 8192, 64, 128]offsets: [5], i32indices: [128, 2], i32seq_lens=repeat(2048, 4)chunk_size=64dtype=f16/f32, f32/f32
  • ragged-tailx: [1, 1000, 64, 128]offsets: [5], i32indices: [34, 2], i32seq_lens=[100,200,300,400]chunk_size=32dtype=f16/f32
  • ragged-batchedx: [2, 2048, 64, 128]offsets: [3], i32indices: [32, 2], i32seq_lens=repeat(1024, 2)chunk_size=64dtype=f16/f32
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
uniform-8kf16/f321.21×0.0388torch-view-mean
torch-compile
torch-ref
0.0471
0.3804
0.6260
1.7678%mem
bf16/f321.25×0.0393torch-view-mean
torch-compile
torch-ref
0.0491
0.3800
0.6311
1.7377%mem
uniform-batchedf16/f321.29×0.0223torch-view-mean
torch-compile
torch-ref
0.0287
0.1402
0.1832
1.5368%mem
ragged-evenf16/f327.50×0.0406torch-segment-reduce
torch-compile
torch-ref
0.3041
0.3811
0.6306
1.6875%mem
f32/f321.15×0.0699torch-segment-reduce
torch-compile
torch-ref
0.0801
0.3797
0.6518
0.97587%mem
ragged-tailf16/f324.82×0.00938torch-segment-reduce
torch-compile
torch-ref
0.0452
0.0964
0.2181
0.90340%mem
ragged-batchedf16/f325.85×0.0240torch-compile
torch-ref
torch-segment-reduce
0.1407
0.1876
0.2657
1.4263%mem

Convolution

Conv1dFwd

input: [N, C_in, L_in]weight: [C_out, C_in_g, kW]

dtype=f16, bf16

  • whisper-conv1input: [1, 80, 3000]weight: [1280, 80, 3]
  • wav2vec2-layer1input: [1, 1, 16000]weight: [512, 1, 10]stride=5
  • encodec-initinput: [1, 1, 24000]weight: [32, 1, 7]
  • encodec-deepinput: [1, 128, 600]weight: [256, 128, 10]

input: [N, C_in, L_in]weight: [C_out, C_in_g, kW]bias: [C_out]

dtype=f16, bf16

  • whisper-conv1-biasinput: [1, 80, 3000]weight: [1280, 80, 3]bias: [1280]
  • wav2vec2-layer1-biasinput: [1, 1, 16000]weight: [512, 1, 10]bias: [512]stride=5
  • encodec-init-biasinput: [1, 1, 24000]weight: [32, 1, 7]bias: [32]
  • encodec-deep-biasinput: [1, 128, 600]weight: [256, 128, 10]bias: [256]
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
whisper-conv1f162.52×0.0225torch
torch-compile
flaggems
0.0568
0.0568
0.1131
81.811%comp
bf162.50×0.0226torch
torch-compile
flaggems
0.0566
0.0566
0.1116
81.411%comp
wav2vec2-layer1f162.96×0.0063torch
torch-compile
flaggems
0.0187
0.0187
0.0405
5.212%lat
bf162.98×0.0063torch
torch-compile
flaggems
0.0188
0.0188
0.0404
5.212%lat
encodec-initf161.99×0.00333torch
torch-compile
flaggems
0.00662
0.00666
0.0241
3.2311%lat
bf162.00×0.00333torch
torch-compile
flaggems
0.00666
0.00666
0.0240
3.2311%lat
encodec-deepf161.74×0.00982torch
torch-compile
flaggems
0.0171
0.0171
0.0715
39.45%lat
bf161.74×0.00982torch
torch-compile
flaggems
0.0171
0.0171
0.0714
39.45%lat
whisper-conv1-biasf162.76×0.0231torch-compile
torch
flaggems
0.0637
0.0693
0.1115
79.911%comp
bf162.75×0.0232torch-compile
torch
flaggems
0.0637
0.0694
0.1118
79.710%comp
wav2vec2-layer1-biasf163.15×0.00685torch-compile
torch
flaggems
0.0216
0.0252
0.0396
5.0211%lat
bf163.27×0.00662torch-compile
torch
flaggems
0.0217
0.0255
0.0394
5.1911%lat
encodec-init-biasf162.42×0.00355torch-compile
torch
flaggems
0.00861
0.0107
0.0232
3.2410%lat
bf162.71×0.00336torch-compile
torch
flaggems
0.00912
0.0108
0.0232
3.4310%lat
encodec-deep-biasf161.81×0.0103torch-compile
torch
flaggems
0.0187
0.0204
0.0706
37.65%lat
bf161.81×0.0103torch-compile
torch
flaggems
0.0186
0.0204
0.0705
37.75%lat

Conv2dFwd

input: [N, C_in, H, W]weight: [C_out, C_in_g, kH, kW]

  • resnet-3x3input: [2, 64, 56, 56]weight: [64, 64, 3, 3]stride=[1,1]padding=[1,1]dtype=f16, bf16
  • steminput: [1, 3, 112, 112]weight: [64, 3, 3, 3]stride=[2,2]padding=[1,1]dtype=f16
  • stage-down-3x3input: [1, 128, 56, 56]weight: [256, 128, 3, 3]stride=[2,2]padding=[1,1]dtype=f16
  • highresinput: [1, 256, 112, 112]weight: [512, 256, 3, 3]stride=[1,1]padding=[1,1]dtype=f16
  • midresinput: [1, 64, 56, 56]weight: [128, 64, 5, 5]stride=[1,1]padding=[2,2]dtype=f16
  • stage-down-5x5input: [1, 128, 56, 56]weight: [256, 128, 5, 5]stride=[2,2]padding=[2,2]dtype=f16
  • stride2input: [1, 128, 28, 28]weight: [128, 128, 3, 3]stride=[2,2]padding=[1,1]dtype=bf16
  • resnet-1x1input: [2, 64, 56, 56]weight: [256, 64, 1, 1]stride=[1,1]padding=[0,0]dtype=f16, bf16
  • bottleneck-expandinput: [2, 128, 28, 28]weight: [512, 128, 1, 1]stride=[1,1]padding=[0,0]dtype=f16
  • bottleneck-reduceinput: [2, 512, 28, 28]weight: [128, 512, 1, 1]stride=[1,1]padding=[0,0]dtype=f16
  • late-stage-1x1input: [1, 256, 14, 14]weight: [1024, 256, 1, 1]stride=[1,1]padding=[0,0]dtype=f16
  • classifier-1x1input: [1, 512, 7, 7]weight: [2048, 512, 1, 1]stride=[1,1]padding=[0,0]dtype=f16
  • deeplabv3-asppinput: [1, 2048, 32, 32]weight: [256, 2048, 3, 3]stride=[1,1]padding=[12,12]dilation=[12,12]dtype=f16
  • mbv2-depthwiseinput: [1, 32, 56, 56]weight: [32, 1, 3, 3]stride=[1,1]padding=[1,1]groups=32dtype=f16
  • resnext-grouped-3x3input: [1, 128, 28, 28]weight: [256, 4, 3, 3]stride=[1,1]padding=[1,1]groups=32dtype=f16

input: [N, C_in, H, W]weight: [C_out, C_in_g, kH, kW]bias: [C_out]

  • resnet-3x3-biasinput: [2, 64, 56, 56]weight: [64, 64, 3, 3]bias: [64]stride=[1,1]padding=[1,1]dtype=f16, bf16
  • stem-biasinput: [1, 3, 112, 112]weight: [64, 3, 3, 3]bias: [64]stride=[2,2]padding=[1,1]dtype=f16
  • stage-down-3x3-biasinput: [1, 128, 56, 56]weight: [256, 128, 3, 3]bias: [256]stride=[2,2]padding=[1,1]dtype=f16
  • highres-biasinput: [1, 256, 112, 112]weight: [512, 256, 3, 3]bias: [512]stride=[1,1]padding=[1,1]dtype=f16
  • midres-biasinput: [1, 64, 56, 56]weight: [128, 64, 5, 5]bias: [128]stride=[1,1]padding=[2,2]dtype=f16
  • stage-down-5x5-biasinput: [1, 128, 56, 56]weight: [256, 128, 5, 5]bias: [256]stride=[2,2]padding=[2,2]dtype=f16
  • stride2-biasinput: [1, 128, 28, 28]weight: [128, 128, 3, 3]bias: [128]stride=[2,2]padding=[1,1]dtype=bf16
  • resnet-1x1-biasinput: [2, 64, 56, 56]weight: [256, 64, 1, 1]bias: [256]stride=[1,1]padding=[0,0]dtype=f16, bf16
  • bottleneck-expand-biasinput: [2, 128, 28, 28]weight: [512, 128, 1, 1]bias: [512]stride=[1,1]padding=[0,0]dtype=f16
  • bottleneck-reduce-biasinput: [2, 512, 28, 28]weight: [128, 512, 1, 1]bias: [128]stride=[1,1]padding=[0,0]dtype=f16
  • late-stage-1x1-biasinput: [1, 256, 14, 14]weight: [1024, 256, 1, 1]bias: [1024]stride=[1,1]padding=[0,0]dtype=f16
  • classifier-1x1-biasinput: [1, 512, 7, 7]weight: [2048, 512, 1, 1]bias: [2048]stride=[1,1]padding=[0,0]dtype=f16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
resnet-3x3f161.63×0.00714torch-compile
torch
flaggems
0.0116
0.0148
0.0834
63.39%lat
bf161.66×0.00714torch-compile
torch
flaggems
0.0118
0.0149
0.0833
63.38%lat
stemf162.11×0.00312torch
torch-compile
flaggems
0.00659
0.00925
0.0132
3.433%lat
stage-down-3x3f161.45×0.00931torch-compile
torch
flaggems
0.0135
0.0170
0.1183
48.57%lat
highresf161.23×0.0641torch-compile
torch
flaggems
0.0785
0.0949
0.7347
45663%comp
midresf161.53×0.0106torch-compile
torch
flaggems
0.0163
0.0193
0.2017
11616%lat
stage-down-5x5f161.28×0.0174torch-compile
torch
flaggems
0.0222
0.0254
0.3096
70.810%lat
stride2bf161.51×0.00803torch-compile
torch
flaggems
0.0121
0.0148
0.0647
6.862%lat
resnet-1x1f161.06×0.004torch
torch-compile
flaggems
0.00422
0.00845
0.0495
51.422%lat
bf161.01×0.004torch
torch-compile
flaggems
0.00403
0.00835
0.0495
51.422%lat
bottleneck-expandf161.18×0.00343torch
torch-compile
flaggems
0.00403
0.00742
0.0290
6014%lat
bottleneck-reducef161.06×0.00413torch
torch-compile
flaggems
0.00438
0.008
0.0264
49.812%lat
late-stage-1x1f161.55×0.0041torch
torch-compile
flaggems
0.00637
0.00669
0.0157
25.16%lat
classifier-1x1f161.03×0.0071torch-compile
torch
flaggems
0.00733
0.00922
0.0211
14.57%lat
deeplabv3-asppf161.09×0.0836torch-compile
torch
flaggems
0.0915
0.1193
0.7178
659%comp
mbv2-depthwisef161.39×0.00221torch
torch-compile
flaggems
0.00307
0.00563
0.0542
0.7994%lat
resnext-grouped-3x3f165.05×0.00378torch-compile
torch
flaggems
0.0191
0.0191
0.0193
3.654%lat
resnet-3x3-biasf161.64×0.00755torch-compile
torch
flaggems
0.0124
0.0183
0.0827
59.88%lat
bf161.60×0.00755torch-compile
torch
flaggems
0.0121
0.0185
0.0826
59.88%lat
stem-biasf162.70×0.00355torch
torch-compile
flaggems
0.0096
0.0097
0.0124
3.073%lat
stage-down-3x3-biasf161.39×0.00992torch-compile
torch
flaggems
0.0138
0.0200
0.1172
45.56%lat
highres-biasf161.19×0.0665torch-compile
torch
flaggems
0.0789
0.1145
0.7313
44060%comp
midres-biasf161.42×0.0115torch-compile
torch
flaggems
0.0164
0.0225
0.2015
10715%lat
stage-down-5x5-biasf161.26×0.0179torch-compile
torch
flaggems
0.0225
0.0287
0.3088
68.79%lat
stride2-biasbf161.48×0.00855torch-compile
torch
flaggems
0.0127
0.0175
0.0638
6.451%lat
resnet-1x1-biasf162.13×0.00422torch-compile
torch
flaggems
0.00899
0.0116
0.0486
4921%lat
bf162.02×0.00419torch-compile
torch
flaggems
0.00845
0.0116
0.0486
49.421%lat
bottleneck-expand-biasf162.11×0.00362torch-compile
torch
flaggems
0.00765
0.00867
0.0280
57.113%lat
bottleneck-reduce-biasf161.76×0.00416torch
torch-compile
flaggems
0.00733
0.00829
0.0255
49.511%lat
late-stage-1x1-biasf161.65×0.00435torch-compile
torch
flaggems
0.00717
0.00923
0.0150
23.75%lat
classifier-1x1-biasf161.05×0.00758torch-compile
torch
flaggems
0.00797
0.0121
0.0204
13.67%lat

Conv3dFwd

input: [N, C_in, D, H, W]weight: [C_out, C_in_g, kD, kH, kW]

  • r3d-steminput: [1, 3, 16, 112, 112]weight: [64, 3, 3, 3, 3]stride=[1,1,1]padding=[1,1,1]dtype=f16
  • video-downinput: [1, 64, 8, 56, 56]weight: [128, 64, 3, 3, 3]stride=[2,2,2]padding=[1,1,1]dtype=f16
  • unet-encoderinput: [1, 32, 32, 64, 64]weight: [64, 32, 3, 3, 3]stride=[1,1,1]padding=[1,1,1]dtype=bf16
  • unet-asppinput: [1, 256, 8, 16, 16]weight: [256, 256, 3, 3, 3]stride=[1,1,1]padding=[6,6,6]dilation=[6,6,6]dtype=f16
  • resnext-groupedinput: [1, 64, 8, 28, 28]weight: [128, 2, 3, 3, 3]stride=[1,1,1]padding=[1,1,1]groups=32dtype=f16

input: [N, C_in, D, H, W]weight: [C_out, C_in_g, kD, kH, kW]bias: [C_out]

padding=[1,1,1]

  • r3d-stem-biasinput: [1, 3, 16, 112, 112]weight: [64, 3, 3, 3, 3]bias: [64]stride=[1,1,1]dtype=f16
  • video-down-biasinput: [1, 64, 8, 56, 56]weight: [128, 64, 3, 3, 3]bias: [128]stride=[2,2,2]dtype=f16
  • unet-encoder-biasinput: [1, 32, 32, 64, 64]weight: [64, 32, 3, 3, 3]bias: [64]stride=[1,1,1]dtype=bf16
Workload dtype Ratio Device time Alternatives Throughput SOL Bound
alt / ours ms name ms TFLOP/s of ceiling by
r3d-stemf163.90×0.0220flaggems
torch-compile
torch
0.0858
0.1148
0.1148
89.527%mem
video-downf161.47×0.0180torch-compile
torch
flaggems
0.0265
0.0265
0.2172
699%lat
unet-encoderbf161.76×0.0660torch
torch-compile
flaggems
0.1164
0.1168
0.3176
21128%comp
unet-asppf161.31×0.0290torch-compile
torch
flaggems
0.0379
0.0379
0.3009
70.410%comp
resnext-groupedf1616.58×0.0154flaggems
torch
torch-compile
0.2546
0.3312
0.3361
4.934%lat
r3d-stem-biasf163.81×0.0223flaggems
torch-compile
torch
0.0850
0.1261
0.1547
88.927%mem
video-down-biasf161.52×0.0184torch-compile
torch
flaggems
0.0280
0.0299
0.2157
67.49%lat
unet-encoder-biasbf161.86×0.0666torch-compile
torch
flaggems
0.1235
0.1420
0.3167
20927%comp