Windows API Completion

This phase prioritizes Windows x64 API completeness before returning to Linux packaging and split-delivery work.

Current Direction

The active development line is:

  • expand the TensorRT and CUDA native C ABI through manifests
  • regenerate managed interop through the binding generator
  • expose safe C# objects instead of raw pointers
  • validate each API batch with Windows smoke runners
  • keep the existing Windows runtime package and release-candidate checks from regressing

Linux manifests, workflows, dry-run artifacts, and handoff documents remain in the repository, but Linux packaging is not the current pacing item.

Current Inventory

The Windows API inventory is generated by:

powershell -ExecutionPolicy Bypass -File .\eng\Export-WindowsApiInventory.ps1

Current manifest count:

  • total APIs: 1659
  • common APIs: 11
  • CUDA APIs: 125
  • TensorRT APIs: 1523

Generated reports:

  • artifacts/api-inventory/windows-api-inventory.json
  • artifacts/api-inventory/windows-api-inventory.md
  • artifacts/api-inventory/tensorrt-api-inventory.json
  • artifacts/api-inventory/tensorrt-api-inventory.md

CUDA Coverage

Current CUDA coverage is intentionally deployment-focused rather than exhaustive:

  • device count, device info, current device, and set device
  • device synchronize and device reset
  • device cache/shared-memory configuration, runtime flags, PCI bus-id lookup, and selected peer-to-peer attributes
  • runtime version, driver version, and memory information
  • stream create, priority stream create, priority range/query, query, wait event, synchronize, flags query, capture status/info, stream id, stream attribute copy, thread capture mode exchange, and destroy
  • event create, record, record-with-flags, query, synchronize, elapsed time, flags query, and destroy
  • CUDA graph create, clone, node/root/edge count query, capture, instantiate, exec flags, exec upload, launch, and destroy for deployment-oriented command replay
  • device memory allocation, size query, synchronous and asynchronous copy, device-to-device copy, peer-to-peer copy, pointer-attribute query, memset, and free
  • asynchronous device-memory allocation/free, selected-pool asynchronous allocation, cudaMemcpyDefault sync/async helpers, device limit query/update, owned memory-pool create/destroy, default/current memory-pool query, current memory-pool update, memory-pool trim, memory-pool attribute query/update helpers, memory-pool access descriptor query/update helpers, and memory-pool high-water query/reset helpers
  • pitched memory allocation, pitch metadata, synchronous 2D host/device/device copy, asynchronous 2D copy through pinned host buffers and CUDA streams, synchronous/asynchronous 2D fill helpers, 3D pitched host/device/device copies, and synchronous/asynchronous 3D fill helpers
  • managed-memory allocation, prefetch, and memory advice helpers for deployment-oriented unified-memory paths
  • selected device attribute queries and peer-access query/enable/disable helpers
  • pinned host memory allocation, host memory registration, allocation/registration flags, optional mapped-device pointer query, host transfer helpers, size query, flags query, and free
  • CUDA last-error, peek-error, error-name, and error-string mapping

The C# layer exposes these through safe wrappers such as CudaDevice, CudaDeviceScope, CudaStream, CudaStreamCaptureInfo, CudaStreamPriorityRange, CudaEvent, CudaGraph, CudaGraphExec, CudaMemory, CudaMemoryInfo, CudaMemoryPressureSnapshot, CudaMemoryPool, CudaPointerAttributes, CudaManagedMemory, CudaPinnedMemory, CudaRegisteredHostMemory, and CudaPitchedMemory. The current helper layer also includes runtime/driver version properties, device cache/shared-memory config, PCI bus-id helpers, runtime flags, P2P attributes, stream-priority helpers, stream id/capture status/info/attribute-copy/thread-capture-mode helpers, event-readiness and record-with-flags helpers, graph create/clone/count/upload/exec-flag helpers, memory-pressure snapshots, owned memory-pool helpers, selected-pool async allocation helpers, high-water memory-pool counters, memory-pool access helpers, cudaMemcpyDefault auto-direction helpers, pointer-attribute helpers, peer-copy helpers, pitched 2D/3D fill helpers, float array copy helpers, and registered-host async transfer helpers for deployment-style input/output buffers. Ordinary users still do not receive raw IntPtr handles; mapped pinned-memory device pointers are surfaced as diagnostic pointer addresses.

Latest Cross-Version Metadata Batch

The latest TensorRT batch raised the manifest count to 1659 by adding 78 cross-version deployment metadata APIs. The batch covers TRT8/TRT10 compatible network-layer creation and metadata access for cast, NMS, einsum, one-hot, assertion, grid-sample, normalization V2, constant dimensions, gather mode, elementwise dimension metadata, and related layer properties. TRT11 added the same metadata flow for constant dimensions and einsum equations where the local TensorRT 11 headers expose the required API. The managed layer exposes the new stable metadata helpers through TensorRtLayer and version-guarded NativeBridgeApi helpers without exposing raw native pointers.

NetworkCompatLayerMetadataSmokeRunner now validates this path on TensorRT 8 + CUDA 11.8, TensorRT 10 + CUDA 11.8, and TensorRT 11 + CUDA 12.9 with 8/8 metadata probes passing on each line. The coverage matrix reports TensorRT matched/source counts of TRT8=447, TRT10=420, and TRT11=548; CUDA line coverage remains 75-78. The remaining largest gaps are still network-layer, plugin, other, engine-context, builder, onnx-parser, runtime-serialization, and refitter; future batches should attack these from artifacts/interface-coverage/tensorrt-interface-backlog.md instead of rescanning manually.

TensorRT Coverage

Current TensorRT coverage focuses on engine build and deployment chains for TensorRT 8, 10, and the now-active TensorRT 11 line:

  • adapter info query
  • logger creation
  • runtime creation
  • builder creation
  • builder platform capability and DLA core-count query
  • builder config creation
  • network definition creation
  • serialized engine build
  • host memory size query
  • host memory byte-copy helpers for managed byte arrays and engine-file round trips
  • engine deserialization from host memory
  • engine deserialization from managed byte arrays and serialized engine files
  • engine I/O tensor count, tensor name, tensor index, tensor data type, tensor shape, tensor I/O mode, optimization-profile count, device-memory metadata, tensor location, tensor format, tensor format description, bytes/components, vectorized dimension, profile shape, engine capability, tactic source, profiling verbosity, layer count, refit, and engine name query
  • execution context creation
  • optimization profile creation and shape assignment
  • builder config optimization profile attachment, profile stream set/query, optimization-profile count query, and calibration-profile set/query boundary
  • ONNX parser creation, parse-from-file, parse-from-memory, parser error query, detailed parser diagnostic query, parser error clearing, parser flag get/set/clear/query, and parser operator support query
  • engine inspector creation, context binding, and engine information query
  • execution context input shape updates and shape inference
  • execution context tensor shape/stride query, tensor address binding, address-bound query, optimization profile query/update, debug sync, context name, enqueue profiling flag, profiler report, max-output-size query, TensorRT 10/11 tensor debug-state helpers where exposed, and input-shape completion checks
  • stream-based enqueue
  • builder flag set/query
  • builder memory-pool limit set/query
  • timing cache create, attach, and serialize
  • builder optimization level set/query
  • profiling verbosity set/query
  • max auxiliary streams set/query
  • average timing iterations set/query
  • direct network editing: add input, mark output, input/output counts, input/output tensor query
  • network output unmarking for direct network editing
  • network metadata: get/set network name, layer count, layer query, and TensorRT 10 network flags where available
  • tensor metadata editing/query: get/set name, get/set data type, get/set shape, get/set location, get/set allowed formats, set/query/reset dynamic range
  • identity, constant, elementwise, matrix multiply, shuffle reshape, reduce, concatenation, slice, softmax, unary, top-k, gather, activation, pooling, LRN, resize, shape, select, fill, convolution, deconvolution, quantize, dequantize, scale, padding, cast, non-zero, ragged-softmax, NMS, reverse-sequence, einsum, loop, and if-conditional layer/control-flow creation
  • LRN layer window/alpha/beta/k metadata
  • convolution and deconvolution layer output-map/group/kernel/stride/pre-padding/post-padding/dilation/padding-mode metadata
  • quantize and dequantize layer axis metadata
  • scale layer mode and channel-axis metadata
  • padding layer pre/post padding metadata
  • builder-config per-layer device type set/query/reset
  • matrix multiply operation metadata for layers created through the bridge
  • shuffle zero-placeholder metadata for layers created through the bridge
  • reduce layer operation/axes/keep-dimensions metadata for layers created through the bridge
  • concatenation layer axis metadata for layers created through the bridge
  • slice layer start/size/stride/mode metadata for layers created through the bridge
  • activation, pooling, resize, shape, select, and fill metadata used by deployment-oriented network smoke runners
  • activation type/alpha/beta, pooling type/window/stride/padding/blend/average-count/pre-padding/post-padding/padding-mode, resize mode/output-dimensions/scales, resize coordinate/selector/rounding/cubic/exclude-outside where supported, elementwise operation, reduce operation/axes/keep-dimensions, matrix multiply operation, shuffle reshape/zero-placeholder, concatenation axis, slice start/size/stride/mode, unary operation, top-k operation/k/axes, softmax axes, and gather axis editing
  • layer precision set/query/reset, output type set/query/reset, generic layer input replacement, layer metadata string set/query, rank count set/query, cast output data type, non-zero indices data type, NMS bbox format / top-K / threshold tensor / indices type, reverse-sequence axis metadata, loop output/trip-limit/iterator metadata, if-conditional input/output/condition metadata, fill Int64 alpha/beta metadata, engine weight-streaming/stat/hardware-compatibility metadata, execution-context output/address/allocator diagnostics, builder-config reset/timing-cache/plugin/progress-monitor/DLA diagnostics, network debug/shape-output markers, engine-inspector layer/context/error-recorder diagnostics, execution-context NVTX/profiler/debug-listener/runtime-config/aux-stream/unfused-debug/address diagnostics, direct tensor network-role query, per-layer input/output tensor slot metadata/summaries, and TRT11 builder-config runtime controls
  • layer metadata query: name, type, input/output count, input tensor query, and output tensor query
  • execution context deployment helpers: external device-memory set, device-memory-size update where TensorRT exposes it, persistent-cache limit set/query, shape inference, and input-consumed event binding
  • refitter deployment APIs: engine refitter creation, missing/refittable weight count query, missing/all entry enumeration, explicit host-buffer weight assignment, and refit execution. The current SetWeights path is intentionally limited to explicit byte-backed buffers so ownership and marshaling stay predictable. RefitWeightsSmokeRunner now validates the TensorRT 10 refit path end-to-end by changing scale weights and verifying changed inference output; TensorRT 8 is kept explicit with a skip when the constructed engine is not refittable.

The C# layer exposes these through TensorRtLogger, TensorRtRuntime, TensorRtBuilder, TensorRtBuilderConfig, TensorRtNetworkDefinition, TensorRtTensor, TensorRtLayer, TensorRtLayerTensorMetadata, TensorRtWeights, TensorRtOptimizationProfile, TensorRtOnnxParser, TensorRtOnnxParserDiagnostic, TensorRtHostMemory, TensorRtTimingCache, TensorRtEngine, TensorRtEngineTensorBinding, TensorRtEngineBindingReport, TensorRtEngineInspector, TensorRtExecutionContext, TensorRtLoop, TensorRtIfConditional, and TensorRtRefitter. The current high-level deployment helpers include builder platform capability/DLA queries, builder-config profile-stream/profile-count/calibration-profile helpers, TRT11 builder-config runtime controls, parser flags/operator support/error clearing/detailed diagnostics, execution-context InferShapes, max-output-size query, TRT11 output/address/allocator diagnostics, tensor format-description query, tensor binding-report aggregation, tensor debug-state helpers with explicit TensorRT 8 not-supported behavior, TRT11 engine weight-streaming/stat/hardware-compatibility helpers, context-aware inspector binding, refitter create/query/refit helpers, refitter missing/all entry enumeration, explicit host-buffer SetWeights, TensorRtHostMemory.ToArray, TensorRtHostMemory.SaveToFile, TensorRtRuntime.Deserialize, TensorRtRuntime.DeserializeFromFile, TensorRtNetworkDefinition.UnmarkOutput, TensorRtNetworkDefinition.AddLrn, TensorRtNetworkDefinition.AddQuantize, TensorRtNetworkDefinition.AddDequantize, TensorRtNetworkDefinition.AddLoop, TensorRtNetworkDefinition.AddIfConditional, deconvolution metadata helpers, Q/DQ axis metadata helpers, TRT11 fill Int64 metadata helpers, direct tensor network-role properties, per-layer input/output tensor metadata snapshots that do not expose native pointers, and TensorRtOnnxParser.GetDiagnostic / GetDiagnostics / GetDiagnosticSummary.

C# Documentation Rule

New or expanded public C# APIs must include bilingual XML documentation comments. Summaries should be useful both in source IntelliSense and in DocFX API output. Generated APIs may use generated documentation, but hand-written public wrappers should not be left without English and Chinese intent notes.

ONNX Parser Dependency Boundary

TensorRT 10.11 parser support is enabled in the current Windows builds.

TensorRT 8.6 parser support on Windows requires cuDNN 8. The TensorRT 8 nvonnxparser.dll depends on nvinfer_plugin.dll, which in turn requires the cuDNN 8 split runtime DLL set.

Current local cuDNN 8 packages are installed under third_party/nvidia. The Windows runtime asset collection now packages the full cudnn*_8.dll split runtime set with the TensorRT 8 runtime packages, together with the matching cuBLAS runtime libraries.

If the required cuDNN 8 runtime DLLs are not present for a selected combination, the bridge keeps the ONNX parser ABI but returns a dependency-missing status when parser creation is requested. This prevents an optional parser dependency from making the entire bridge unloadable.

After dependency collection, the validated Windows TensorRT 8.6 package still raises a vendor SEH exception inside nvonnxparser::createParser. The bridge therefore returns NotSupported for TensorRT 8 parser creation on Windows so a vendor exception cannot cross the C ABI and crash the process. TensorRT 8 direct network construction remains enabled and validated; TensorRT 10 should be used for Windows ONNX parsing until this path is isolated further.

Windows native builds delay-load CUDA and TensorRT DLLs. This keeps common bridge queries and CUDA-only paths loadable even when an optional TensorRT parser dependency is missing or blocked by Windows application control.

When running TensorRT 8 parser/build smoke tests directly from build-out, set JYPPX_CUDNN_ROOT to the matching cuDNN 8 archive root. Runtime-package based smoke paths already collect the required split cuDNN DLLs.

Deferred TensorRT Areas

The current TRT11 deployment batches raised manifest inventory to 1534 API records and TensorRT manifest coverage to 1398 APIs. TRT8 and TRT10 remain broad deployment surfaces with 359 and 358 TensorRT APIs respectively; TRT11 now has 680 APIs and covers optimization profiles, builder config, ONNX parser diagnostics, network I/O metadata, common network layer creation, engine tensor metadata, refitter metadata, engine inspector, execution-context tensor shape/address/enqueue/debug/profiling/device-memory helpers, engine I/O tensor name/index/debug helpers, builder-config layer device type metadata, deployment-critical convolution/deconvolution/scale/padding/LRN/QDQ plus matrix/shuffle/reduce/concat/slice/softmax/unary/top-k/gather/activation/pooling/resize/fill/cast/non-zero/ragged-softmax/NMS/reverse-sequence/einsum layer construction and metadata helpers, loop/if control-flow creation and metadata helpers, Int64 fill metadata helpers, engine weight-streaming/stat/hardware-compatibility helpers, execution-context output/address/allocator diagnostics, builder-config runtime-control helpers, builder-config reset/timing-cache/plugin/progress-monitor/DLA diagnostics, network debug/shape-output markers, engine-inspector layer/context/error-recorder diagnostics, execution-context NVTX/profiler/debug-listener/runtime-config/aux-stream/unfused-debug/address diagnostics, runtime DLA/thread/tempfile/temp-directory/host-code controls, engine serialization/runtime-config/context-allocation entrypoints, serialization-config flags, runtime-config allocation strategy, refitter async/thread/weights-validation/named-weights metadata controls, network refittable-weight markers, generic layer input/metadata/rank helpers, TRT11 resize advanced policy accessors, gather mode / elementwise-dimension metadata, layer precision/output-type compatibility boundaries, tensor shape/execution-role and dimension-name metadata, direct tensor network-role queries, per-layer input/output tensor-slot metadata and native summaries, TensorRT 11 Dims64 / int64 shape metadata for tensors, networks, layers, engines, optimization profiles, execution contexts, and deployment-critical layer parameters, direct engine build, host-memory data type, optimization-profile shape-values V2, builder-config plugin serialization, execution-context address/device-memory/input-consumed-event/aux-stream cleanup controls, engine profile tensor-values V2 read boundaries, context-to-engine metadata reflection, context input-consumed-event diagnostics, context runtime-config allocation-strategy query, engine-inspector error-recorder cleanup, and TRT11-only scatter/one-hot/cumulative/assertion/grid-sample/normalizationV2/squeeze/unsqueeze/dynamic-quantizeV2 creation/metadata entrypoints. Use eng/Export-TensorRtApiInventory.ps1 to regenerate the TRT8/TRT10/TRT11 gap report.

The latest CUDA deployment gap-closure batch raised CUDA manifest inventory to 125 APIs. The persistent coverage matrix now reports 75-78 matched CUDA runtime functions across CUDA 11.6, 11.8, 12.1, 12.3, 12.9, and 13.2. The added batch covers device cache/shared-memory config, PCI bus-id lookup, runtime flags, selected P2P attributes, stream id/attribute-copy/thread capture mode, event record-with-flags, graph create/clone/count queries, graph exec flags, and graph upload. cudaStreamGetDevice remains a documented NotSupported boundary on the current Windows CUDA 12.9 import library because the header declares the symbol but the local cudart import library does not export a linkable entry.

The latest Windows API completion batches added the direct network editing minimum chain plus constant, elementwise, matrix multiply, shuffle reshape, reduce, concatenation, slice, softmax, unary, top-k, gather, activation, pooling, LRN, resize, shape, select, fill, convolution, deconvolution, quantize/dequantize, scale, and padding layers. The most recent batches also added deployment metadata for network names/flags/layer lookup, tensor location/allowed formats/dynamic range, layer precision/output type, builder-config layer device type, convolution/deconvolution/quantize/dequantize/scale/padding/LRN metadata, execution-context deployment memory helpers, CUDA device synchronize/reset, stream capture/status/info, CUDA graph instantiate/launch/destroy, async memory allocation/free, default memory-pool helpers, unified-memory allocation/prefetch/advice, device attributes, peer-access helpers, optional mapped pinned-memory pointer query, pitched memory and 2D/3D copy/fill helpers, TensorRT host-memory byte/file round trips, runtime deserialize-from-file helpers, parser detailed diagnostics, optimization-profile shape query and shape-value query, optimization-profile extra-memory target/validity helpers, builder-config engine capability / preview-feature / hardware-compatibility / TensorRT 10 runtime-platform/profile-stream/profile-count/calibration-profile helpers, execution-context readiness snapshots, CUDA device-property snapshots, and network output unmarking. The next batches should focus on larger deployment-critical batches and source maintainability instead of tiny incremental additions:

  • richer deployment samples that combine dynamic shapes, optimization profiles, ONNX parsing, and explicit tensor address binding
  • additional network/layer editing APIs beyond identity/constant/elementwise/matrix-multiply/shuffle/reduce/concat/slice/softmax/unary/top-k/gather/activation/pooling/resize/shape/select/fill/convolution/deconvolution/quantize/dequantize
  • source modularization: continue splitting oversized native TensorRT/CUDA adapter files and large managed interop/helper files into module folders before adding another large API wave
  • plugin registry and plugin lifecycle
  • advanced execution context profiling and debug tensor APIs

The twenty-sixth Windows API batch raised the manifest count to 801 by adding builder-config profile stream/profile-count/calibration-profile APIs, detailed ONNX parser diagnostic APIs, CUDA stream capture status/info, and synchronous/asynchronous pitched 3D fill helpers. It also made the TensorRT 8 Windows ONNX parser boundary explicit by returning NotSupported for parser creation after a vendor SEH exception was reproduced in nvonnxparser::createParser.

The twenty-seventh Windows API batch raised the manifest count to 813 by adding TensorRT 8/10 optimization-profile shape-value, extra-memory target, and validity entrypoints. The managed layer now exposes TensorRtOptimizationProfileShapeValueRange, TensorRtOptimizationProfile.ExtraMemoryTarget, TensorRtOptimizationProfile.IsValid, shape-value setters/getters, execution-context readiness snapshots, and aggregated CUDA CudaDeviceProperties. The smoke surface was expanded so CUDA, ONNX, direct-network, and lifecycle runners print these deployment-readiness signals. Future batches should remain larger and deployment-critical: favor grouped API waves over tiny additions, and keep each wave tied to smoke/sample validation. New APIs should continue to enter through manifest-driven native ABI expansion whenever possible. Handwritten code is acceptable only for version guards, ownership rules, callbacks, pinning, or complex marshaling.

The latest TRT11 deployment batch added 43 TRT11 deployment APIs for Dims64 / int64 dimension metadata. The managed layer now exposes TensorRtDims64, TensorRtOptimizationProfileShapeRange64, tensor/network/layer/engine/context/profile *Shape64 helpers, and dimension-extent helpers without exposing native pointers. These probes cover tensor, network I/O, layer I/O, engine tensor/profile shape, execution-context tensor shape/stride, optimization-profile shape ranges, and layer parameter dimensions for shuffle, slice, dynamic quantize, pooling, resize, fill, convolution, deconvolution, and padding. TensorRT 11 unknown-rank tensors are represented as TensorRtDims64.UnknownRank or shape=unknown-rank metadata snapshots rather than failing the high-level probe. TensorRtSmokeRunner now records EvidenceCount=27 for Dims64 metadata on TensorRT 11 + CUDA 12.9, and NetworkTrt11ModernLayerMetadataRunner records 7/7 modern-layer Dims64 metadata probes. CUDA smoke, TRT10/TRT8 TensorRtSmokeRunner, TRT10/TRT8 lifecycle smoke, DocFX 0 warning, workflow contracts, project-quality tests, generator determinism, Debug/Release managed builds, and real TRT11 native build passed. The next batches should keep adding larger native API groups instead of only adding aggregation helpers; removed or replaced TensorRT APIs should remain explicit version boundaries rather than fake compatibility.

Validation

Representative Windows validation commands:

dotnet build TensorRtSharp.sln -c Debug --no-restore
powershell -ExecutionPolicy Bypass -File .\eng\Test-BindingGeneratorOutputs.ps1
powershell -ExecutionPolicy Bypass -File .\eng\Export-WindowsApiInventory.ps1
powershell -ExecutionPolicy Bypass -File .\eng\Export-TensorRtApiInventory.ps1

Smoke runners:

dotnet .\smoke\CudaSmokeRunner\bin\Debug\net8.0\CudaSmokeRunner.dll
dotnet .\smoke\TensorRtSmokeRunner\bin\Debug\net8.0\TensorRtSmokeRunner.dll
dotnet .\smoke\OnnxToEngineSmokeRunner\bin\Debug\net8.0\OnnxToEngineSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkBuilderSmokeRunner\bin\Debug\net8.0\NetworkBuilderSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkLayersSmokeRunner\bin\Debug\net8.0\NetworkLayersSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkShapeOpsSmokeRunner\bin\Debug\net8.0\NetworkShapeOpsSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkConcatSliceSmokeRunner\bin\Debug\net8.0\NetworkConcatSliceSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkSoftmaxTopKSmokeRunner\bin\Debug\net8.0\NetworkSoftmaxTopKSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkActivationPoolingResizeSmokeRunner\bin\Debug\net8.0\NetworkActivationPoolingResizeSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkMatrixFillSelectSmokeRunner\bin\Debug\net8.0\NetworkMatrixFillSelectSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkConvolutionScaleSmokeRunner\bin\Debug\net8.0\NetworkConvolutionScaleSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkDeconvolutionSmokeRunner\bin\Debug\net8.0\NetworkDeconvolutionSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkLrnSmokeRunner\bin\Debug\net8.0\NetworkLrnSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkQuantizeDequantizeSmokeRunner\bin\Release\net8.0\NetworkQuantizeDequantizeSmokeRunner.dll --tensor-rt-line 10
dotnet .\smoke\NetworkTrt11ModernLayerMetadataRunner\bin\Debug\net8.0\NetworkTrt11ModernLayerMetadataRunner.dll --tensor-rt-line 11
dotnet .\smoke\NetworkTrt11AdvancedLayersSmokeRunner\bin\Debug\net8.0\NetworkTrt11AdvancedLayersSmokeRunner.dll --tensor-rt-line 11
dotnet .\smoke\CudaGraphSmokeRunner\bin\Debug\net8.0\CudaGraphSmokeRunner.dll
dotnet .\smoke\RefitWeightsSmokeRunner\bin\Debug\net8.0\RefitWeightsSmokeRunner.dll --tensor-rt-line 10

Expected CUDA signals include CudaVersions Runtime=... Driver=..., StreamPriorityRange, PriorityStream Flags=NonBlocking Priority=..., EventReady=True, PriorityStreamReady=True, CudaPeekLastError=0:cudaSuccess, StreamFlags=NonBlocking, StreamCapture InitialStatus=None Info=None:0, PinnedFlags, FloatRoundTrip=True, PinnedAsyncRoundTrip=True, RegisteredHostMemoryAsyncRoundTrip=True when the selected device supports cudaHostRegister, DeviceToDevice=True, MemcpyDefault Sync=True Async=True, optional PeerCopy on multi-GPU systems, DeviceSynchronize=True, OwnedMemoryPool Device=... PoolAsyncAllocation=True ... ResetHigh=True, DefaultMemoryPool ... CurrentPoolDevice=... Trim=True ResetHigh=True, MemoryPoolAccess Self=... Peer=..., DeviceLimit StackSize=..., PointerAttributes Type=Device Device=..., AsyncMemoryPoolAllocation=True when the selected CUDA runtime supports async allocation, ManagedMemoryRoundTrip when the selected device supports managed memory, DeviceAttribute ManagedMemory=..., optional PeerAccess, optional MappedPinned, PitchedMemory SyncRoundTrip=True, PitchedMemory ... Fill2D=True, PitchedMemoryAsync RoundTrip=True, PitchedMemoryAsync ... Fill2DAsync=True, PitchedMemory3D SyncRoundTrip=True DeviceToDevice=True AsyncRoundTrip=True Fill3D=True AsyncRoundTrip=True Fill3DAsync=True, StreamReadyAfterSync=True, StreamWaitEvent=True, CudaGraphCaptureRoundTrip=True, Capture=None->Active->None, EventElapsedMilliseconds=..., and CudaGetLastError=0:cudaSuccess.

Expected TensorRT signals in TensorRtSmokeRunner and LifecycleSmokeRunner include BuilderCaps=[FastFp16=... FastInt8=... Tf32=... DlaCores=...], Parser=Available ... SupportsIdentity=... NativeInstanceNorm=... for TensorRT 10 or Parser=Unavailable NotSupported for the guarded TensorRT 8 Windows parser path, InspectorContext=True, AdvancedApi, InferShapesMissing=0, OutputSizing=[...], TensorDebug=Skipped... or TensorDebug=Unsupported depending on the selected TensorRT line and tensor state, Refitter=Created All=... Missing=... or Refitter=Skipped NonRefittable, InspectorBytes, and Enqueue=True.

Expected OnnxToEngineSmokeRunner signals include Parsed=True, ProfileIndex=0, ProfileStream=True, ProfileCount=1, ProfileShapes ConfiguredMin=[1, 4] ConfiguredOpt=[2, 4] ConfiguredMax=[4, 4] Min=[1, 4] Opt=[2, 4] Max=[4, 4], BuilderConfig ... Capability=Standard HardwareCompatibility=None ... RuntimePlatform=..., BuilderCaps FastFp16=..., ParserFlags Before=... NativeInstanceNorm=... SupportsIdentity=True, InspectorContext=True, ActiveAfter=0, EnqueueEmitsProfileToggle=False, TimingCacheBytes=..., EngineFileRoundTrip=True, InferShapes MissingCount=0, MaxOutputSize=..., TensorDebug=..., Refitter=..., ParserDiagnosticProbe=Parsed=False Count=1, and OutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11. TensorRT 8 + CUDA 11 remains validated through direct network construction, while ONNX parser creation is reported as Skipped=True Reason=...NotSupported on Windows.

Expected RefitWeightsSmokeRunner signals for TensorRT 10 include Engine Refittable=True, RefitEntries All=... Missing=..., RefitWeights Set=True Refit=True, and OutputChanged=True. Current local validation passed for TensorRT 10 + CUDA 11. TensorRT 8 currently reports RefitWeights=Skipped Reason=EngineNotRefittable for the constructed scale network; this is treated as an explicit version/engine-capability boundary, not a false success.

Expected NetworkBuilderSmokeRunner signals include Network Inputs=1 Outputs=1, BuilderConfig OptLevel=3 ... Capability=Standard HardwareCompatibility=None ... RuntimePlatform=..., ProfileConfigured Min=[1, 4] Opt=[2, 4] Max=[4, 4], ProfileStream=True, ProfileCount=1, CalibrationProfile=Set=True, Enqueue=True, and OutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11 and TensorRT 8 + CUDA 11.

Expected binding-report signals include BindingReport Ready=True Profile=0 Tensors=2 and per-tensor format metadata such as Linear, VectorizedDimension=-1, and a TensorRT-provided format description. These signals are emitted by direct-network, ONNX, and lifecycle runners.

Expected NetworkLayersSmokeRunner signals include LayerMetadata Constant=...:Constant:I0:O1, Sum=...:ElementWise:I2:O1, Network Inputs=1 Outputs=1, and ElementWiseOutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11 and TensorRT 8 + CUDA 11.

Expected NetworkShapeOpsSmokeRunner signals include ShapeOpsMetadata Shuffle=...:Shuffle:Reshape=[2, 2, 2]:ZeroPlaceholder=False, Reduce=...:Reduce:Op=Sum:Axes=4:Keep=True, Shape=...:ShapeTrt..., Output=reduced_output:...:[2, 2, 1], and ShapeOpsOutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11 and TensorRT 8 + CUDA 11.

Expected NetworkConcatSliceSmokeRunner signals include ConcatSliceMetadata Slice=...:SliceTrt...:Start=[0, 0]:Size=[2, 2]:Stride=[1, 1], Concat=...:Concatenation:Axis=1, Config AvgTiming=1, and ConcatSliceOutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11 and TensorRT 8 + CUDA 11.

Expected NetworkSoftmaxTopKSmokeRunner signals include SoftMax=...:SoftMax:Axes=2, TopK=...:TopK:Op=Max:K=1:Axes=2, Unary=...:Unary:Op=Abs, Gather=...:Gather:Axis=1, TacticSources=..., and SoftMaxTopKOutputMatch=True UnaryOutputMatch=True GatherOutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11 and TensorRT 8 + CUDA 11.

Expected NetworkActivationPoolingResizeSmokeRunner signals include Activation=...:Activation:Type=LeakyRelu:Alpha=0:Beta=0, Pooling=...:Pooling:Type=Max:Window=[2, 2]:Stride=[2, 2]:Padding=[0, 0]:Pre=[0, 0]:Post=[0, 0], Resize=...:ResizeTrt...:Mode=Nearest:OutputDims=[1, 1, 2, 2], NetworkMetadata, LayerPrecision, TensorMetadata, LayerDevice, EngineMetadata, ContextMetadata, and ActivationPoolingResizeOutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11 and TensorRT 8 + CUDA 11.

Expected NetworkMatrixFillSelectSmokeRunner signals include Matrix=...:MatrixMultiplyTrt...:Op0=None:Op1=None, Fill=...:FillTrt...:Dims=[2, 2]:Op=Linspace:Alpha=10:Beta=0, Select=...:SelectTrt..., EngineMetadata DeviceMemory=... Profiles=..., EngineTensor Index=... Type=Float Shape=[2, 2] Mode=Output, and MatrixFillSelectOutputMatch=True. Current local validation has passed for TensorRT 10 + CUDA 11 and TensorRT 8 + CUDA 11.

Expected NetworkConvolutionScaleSmokeRunner signals include convolution/scale/padding metadata, serialized engine build, tensor address binding, enqueue, and output comparison for a small convolution-style network.

Expected NetworkDeconvolutionSmokeRunner signals include DeconvolutionMetadata OutputMaps=1 Groups=1 Kernel=[1, 1] Stride=[1, 1] Dilation=[1, 1], DeconvolutionIdentityOutputMatch=True, serialized engine build, tensor address binding, enqueue, and output comparison for a small deconvolution identity-style network.

Expected NetworkLrnSmokeRunner signals include Lrn=...:Lrn:Window=1:Alpha=0:Beta=1:K=1, serialized engine build, tensor address binding, enqueue, and LrnIdentityOutputMatch=True for a small LRN identity-style network.

If Windows application control / WDAC blocks unsigned jyppxtrtbridge.dll or freshly built Debug sample assemblies with 0x800711C7, run eng/Sign-WindowsBridgeBinaries.ps1 before collecting runtime assets and running smoke tests. If managed sample/test assemblies are blocked, run eng/Sign-WindowsManagedBinaries.ps1 -Configuration Debug after building the solution, or build Release outputs and use eng/Invoke-WindowsLifecycleSmoke.ps1 -Configuration Release. These scripts create or reuse a CurrentUser local development code-signing certificate. They are local validation aids only; public release signing and NVIDIA redistribution review remain separate release tasks.