RabbitDaisuke's picture
Compare equivalent FP32 head GEMM layouts 40a8a49d99203b6c3afd654883c6c1696d6c3192
09ad794 verified
Raw History Blame Contribute Delete
21.3 kB
{
"schema": "rtmw3d-head-experiments/v1",
"sourceCommit": "40a8a49d99203b6c3afd654883c6c1696d6c3192",
"keypointCount": 133,
"variants": [
{
"id": "rtmw3d-l-fp32-gpu-decoder",
"model": "rtmw3d-l",
"policy": "fp32-gpu-decoder",
"file": "experiments/rtmw3d-l-fp32-gpu-decoder.onnx",
"sizeBytes": 230006412,
"sha256": "8fc094f02434d5de23cdc41755c3d88e8f46ed96bbb02cc0c7a80c04433977aa",
"precision": "fp32",
"experimental": true,
"qualityPassed": true,
"browserGPUValidated": false,
"sourceRevision": "88ee5cb728cb2ed3efaf43011c9dd4908a6504b7",
"sourceModelSha256": "4e37e5e9043817c5ff387b61c44bb48af94ad42e4978c4e43780761c65582abc",
"upstream": "https://github.com/open-mmlab/mmpose",
"weightsUnchangedFP32": true,
"gpuDecoderMinimum": "Less+Where",
"input": {
"name": "input",
"type": "float32",
"shape": [
1,
3,
384,
288
]
},
"outputs": [
{
"name": "keypoints",
"type": "float32",
"shape": [
1,
133,
3
],
"units": [
"crop-pixels",
"crop-pixels",
"root-relative-metres"
]
},
{
"name": "scores",
"type": "float32",
"shape": [
1,
133
]
}
],
"outputBytesPerFrame": 2128,
"changedConvolutions": [],
"comparisons": [
{
"publicFixtureImageId": 40083,
"parts": {
"all": {
"joints": 111,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body": {
"joints": 16,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body-feet": {
"joints": 22,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hips": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"knees": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"ankles": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"feet": {
"joints": 6,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"face": {
"joints": 68,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hands": {
"joints": 21,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
}
},
"scoreMaxAbsoluteError": 0.0
},
{
"publicFixtureImageId": 197388,
"parts": {
"all": {
"joints": 133,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body": {
"joints": 17,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body-feet": {
"joints": 23,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hips": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"knees": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"ankles": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"feet": {
"joints": 6,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"face": {
"joints": 68,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hands": {
"joints": 42,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
}
},
"scoreMaxAbsoluteError": 0.0
}
],
"referenceLatencyMs": [],
"note": "Same trained weights and 133-point 3D contract; explicit im2col and optional batched split-K reduction. CPU conversion tests are not WebGPU performance or target-video accuracy measurements."
},
{
"id": "rtmw3d-l-fp32-head-gemm-split8",
"model": "rtmw3d-l",
"policy": "fp32-head-gemm-split8",
"file": "experiments/rtmw3d-l-fp32-head-gemm-split8.onnx",
"sizeBytes": 230139583,
"sha256": "5cde82faa4f8e626ad7594f1231508e7622a020d821038f02f962801cdda6819",
"precision": "fp32",
"experimental": true,
"qualityPassed": true,
"browserGPUValidated": false,
"sourceRevision": "88ee5cb728cb2ed3efaf43011c9dd4908a6504b7",
"sourceModelSha256": "4e37e5e9043817c5ff387b61c44bb48af94ad42e4978c4e43780761c65582abc",
"upstream": "https://github.com/open-mmlab/mmpose",
"weightsUnchangedFP32": true,
"gpuDecoderMinimum": "Less+Where",
"input": {
"name": "input",
"type": "float32",
"shape": [
1,
3,
384,
288
]
},
"outputs": [
{
"name": "keypoints",
"type": "float32",
"shape": [
1,
133,
3
],
"units": [
"crop-pixels",
"crop-pixels",
"root-relative-metres"
]
},
{
"name": "scores",
"type": "float32",
"shape": [
1,
133
]
}
],
"outputBytesPerFrame": 2128,
"changedConvolutions": [
{
"node": "/head/final_layer/conv/Conv",
"inputShape": [
1,
1024,
12,
9
],
"weightShape": [
133,
1024,
7,
7
],
"outputShape": [
1,
133,
12,
9
],
"kernel": [
7,
7
],
"pads": [
3,
3,
3,
3
],
"strides": [
1,
1
],
"dilations": [
1,
1
],
"splits": 8,
"convolutionFLOPs": 1441456128,
"columnBytes": 21676032
},
{
"node": "/head/final_layer2/conv/Conv",
"inputShape": [
1,
768,
24,
18
],
"weightShape": [
133,
768,
7,
7
],
"outputShape": [
1,
133,
24,
18
],
"kernel": [
7,
7
],
"pads": [
3,
3,
3,
3
],
"strides": [
1,
1
],
"dilations": [
1,
1
],
"splits": 8,
"convolutionFLOPs": 4324368384,
"columnBytes": 65028096
}
],
"comparisons": [
{
"publicFixtureImageId": 40083,
"parts": {
"all": {
"joints": 111,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body": {
"joints": 16,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body-feet": {
"joints": 22,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hips": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"knees": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"ankles": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"feet": {
"joints": 6,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"face": {
"joints": 68,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hands": {
"joints": 21,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
}
},
"scoreMaxAbsoluteError": 7.152557373046875e-07
},
{
"publicFixtureImageId": 197388,
"parts": {
"all": {
"joints": 133,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body": {
"joints": 17,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body-feet": {
"joints": 23,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hips": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"knees": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"ankles": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"feet": {
"joints": 6,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"face": {
"joints": 68,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hands": {
"joints": 42,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
}
},
"scoreMaxAbsoluteError": 4.76837158203125e-07
}
],
"referenceLatencyMs": [],
"note": "Same trained weights and 133-point 3D contract; explicit im2col and optional batched split-K reduction. CPU conversion tests are not WebGPU performance or target-video accuracy measurements."
},
{
"id": "rtmw3d-l-fp32-head-gemm",
"model": "rtmw3d-l",
"policy": "fp32-head-gemm",
"file": "experiments/rtmw3d-l-fp32-head-gemm.onnx",
"sizeBytes": 230137892,
"sha256": "b09da548132bce0d04d99008e46b13f2bb3f4407a8513c5fa8f24a5b6d8071d8",
"precision": "fp32",
"experimental": true,
"qualityPassed": true,
"browserGPUValidated": false,
"sourceRevision": "88ee5cb728cb2ed3efaf43011c9dd4908a6504b7",
"sourceModelSha256": "4e37e5e9043817c5ff387b61c44bb48af94ad42e4978c4e43780761c65582abc",
"upstream": "https://github.com/open-mmlab/mmpose",
"weightsUnchangedFP32": true,
"gpuDecoderMinimum": "Less+Where",
"input": {
"name": "input",
"type": "float32",
"shape": [
1,
3,
384,
288
]
},
"outputs": [
{
"name": "keypoints",
"type": "float32",
"shape": [
1,
133,
3
],
"units": [
"crop-pixels",
"crop-pixels",
"root-relative-metres"
]
},
{
"name": "scores",
"type": "float32",
"shape": [
1,
133
]
}
],
"outputBytesPerFrame": 2128,
"changedConvolutions": [
{
"node": "/head/final_layer/conv/Conv",
"inputShape": [
1,
1024,
12,
9
],
"weightShape": [
133,
1024,
7,
7
],
"outputShape": [
1,
133,
12,
9
],
"kernel": [
7,
7
],
"pads": [
3,
3,
3,
3
],
"strides": [
1,
1
],
"dilations": [
1,
1
],
"splits": 1,
"convolutionFLOPs": 1441456128,
"columnBytes": 21676032
},
{
"node": "/head/final_layer2/conv/Conv",
"inputShape": [
1,
768,
24,
18
],
"weightShape": [
133,
768,
7,
7
],
"outputShape": [
1,
133,
24,
18
],
"kernel": [
7,
7
],
"pads": [
3,
3,
3,
3
],
"strides": [
1,
1
],
"dilations": [
1,
1
],
"splits": 1,
"convolutionFLOPs": 4324368384,
"columnBytes": 65028096
}
],
"comparisons": [
{
"publicFixtureImageId": 40083,
"parts": {
"all": {
"joints": 111,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body": {
"joints": 16,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body-feet": {
"joints": 22,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hips": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"knees": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"ankles": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"feet": {
"joints": 6,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"face": {
"joints": 68,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hands": {
"joints": 21,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
}
},
"scoreMaxAbsoluteError": 4.76837158203125e-07
},
{
"publicFixtureImageId": 197388,
"parts": {
"all": {
"joints": 133,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body": {
"joints": 17,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"body-feet": {
"joints": 23,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hips": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"knees": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"ankles": {
"joints": 2,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"feet": {
"joints": 6,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"face": {
"joints": 68,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
},
"hands": {
"joints": 42,
"xyP95_px": 0.0,
"zP95_m": 0.0,
"xyMax_px": 0.0,
"zMax_m": 0.0,
"confidenceLossCount": 0
}
},
"scoreMaxAbsoluteError": 4.76837158203125e-07
}
],
"referenceLatencyMs": [],
"note": "Same trained weights and 133-point 3D contract; explicit im2col and optional batched split-K reduction. CPU conversion tests are not WebGPU performance or target-video accuracy measurements."
}
],
"browserGPUValidated": false
}