File size: 2,684 Bytes
e795266
ecac4b7
 
 
 
 
 
 
 
 
 
e795266
ecac4b7
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
85ecda3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ecac4b7
e795266
ecac4b7
 
 
 
 
85ecda3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{
  "format": "companion-forge-custom-ops/v2",
  "onnx_domain": "com.companionforge",
  "onnx_opset": 1,
  "tensorrt_plugin_namespace": "companionforge",
  "tensorrt_plugin_version": "1",
  "target": {
    "tensorrt": "11.2.1.2",
    "gpu": "NVIDIA L4",
    "compute_capability": "8.9"
  },
  "operators": [
    {
      "name": "SparseConv3D",
      "onnx": "production",
      "tensorrt": "production",
      "semantics": "AniGen SubMConv3d / spconv Native, fixed output cardinality N",
      "validation": "bench/custom_ops_validation.json"
    },
    {
      "name": "SparseWindowAttention",
      "onnx": "production",
      "tensorrt": "production",
      "semantics": "AniGen shifted-window partition + FlashAttention varlen",
      "validation": "bench/custom_ops_validation.json"
    },
    {
      "name": "SparseDownsample",
      "onnx": "production",
      "tensorrt": "production",
      "semantics": "coordinate quantization + unique + scatter mean + inverse map",
      "validation": "bench/custom_ops_validation.json"
    },
    {
      "name": "SparseUpsample",
      "onnx": "production",
      "tensorrt": "production",
      "semantics": "inverse-map gather to target sparse coordinates",
      "validation": "bench/custom_ops_validation.json"
    },
    {
      "name": "SparseSubdivide",
      "onnx": "production",
      "tensorrt": "production",
      "semantics": "N sparse voxels to 8N child voxels",
      "validation": "bench/custom_ops_validation.json"
    },
    {
      "name": "MeshTopologyExtract",
      "onnx": "production",
      "tensorrt": "production",
      "semantics": "FlexiCubes dense topology extraction with TensorRT data-dependent outputs",
      "validation": "bench/mesh_topology_validation.json"
    },
    {
      "name": "SparseMeshTopologyExtract",
      "onnx": "production",
      "tensorrt": "production",
      "semantics": "SLat DAE sparse cube features to FlexiCubes mesh, vertex attributes and skin features",
      "profile": {
        "sparse_cubes": [
          128,
          65536,
          524288
        ],
        "resolution": 256
      },
      "validation": "bench/sparse_mesh_topology_validation.json",
      "input_precision": "fp32",
      "output_precision": {
        "vertices": "fp32",
        "attrs": "fp32",
        "skin": "fp32",
        "faces": "int32"
      }
    }
  ],
  "implementation": {
    "kind": "TensorRT Python/JIT IPluginV3",
    "runtime_registration": "plugins/tensorrt/companion_sparse_trt.py",
    "note": "Plans require plugin registration before deserialization. The ONNX ABI is stable and can later be backed by AOT C++/CUDA implementations without changing model graphs."
  }
}