NVIDIA / NVIDIA/TensorRT

[ERROR] IBuilderConfig::setDeviceType: Error Code 3: API Usage Error (Parameter check failed, condition: (layer) != nullptr. )

Open
#4,557 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Module:Engine Build
Dominant language
C++
Stars
13.4k
Forks
2.4k
Avg merge
5d 3h
Merged PRs (30d)
2

Description

[ERROR] IBuilderConfig::setDeviceType: Error Code 3: API Usage Error (Parameter check failed, condition: (layer) != nullptr. )

TensorRT-RTX == 1.0.0.21
cuda: 12.8
GPU: RTX 5090

int main() {
int device = 0;

// Get the current CUDA device and its properties
cudaDeviceProp prop;
cudaGetDeviceProperties(&prop, device);
int major = prop.major;
int minor = prop.minor;
std::cout << "SM Architecture: sm_" << major << minor << std::endl;

// Get the maximum shared memory per block
cudaGetDevice(&device);
int sharedMemPerBlock = 0;
cudaDeviceGetAttribute(&sharedMemPerBlock, cudaDevAttrMaxSharedMemoryPerBlockOptin, device);
std::cout << "Shared memory per block (with opt-in): " << sharedMemPerBlock / 1024 << " KB" << std::endl;

const char* onnxModelPath = "..\\data\\model_f16\\model.onnx";
const char* engineOutputPath = "..\\data\\model_f16\\model5.engine";

// Step 1: Create builder, network, config, verbose
auto builder = std::unique_ptr<nvinfer1::IBuilder>(nvinfer1::createInferBuilder(logger));
const auto explicitBatch = 1U << static_cast<uint32_t>(nvinfer1::NetworkDefinitionCreationFlag::kEXPLICIT_BATCH);
auto network = std::unique_ptr<nvinfer1::INetworkDefinition>(builder->createNetworkV2(explicitBatch));
auto config = std::unique_ptr<nvinfer1::IBuilderConfig>(builder->createBuilderConfig());

// Step 2: Parse ONNX model
auto parser = std::unique_ptr<nvonnxparser::IParser>(nvonnxparser::createParser(*network, logger));
if (!parser->parseFromFile(onnxModelPath, static_cast<int>(nvinfer1::ILogger::Severity::kWARNING))) {
    std::cerr << "Failed to parse ONNX file" << std::endl;
    return 1;
}

// Step 3: Set max workspace size (80% resources of CPU) and enable FP16 if needed
int total_threads = std::thread::hardware_concurrency();
int threads_to_use = total_threads * 0.8;
builder->setMaxThreads(threads_to_use);

config->setMemoryPoolLimit(nvinfer1::MemoryPoolType::kWORKSPACE, 1ULL << 32); // 2^32 GB ~ 4 GB
//config->setMemoryPoolLimit(nvinfer1::MemoryPoolType::kTACTIC_SHARED_MEMORY, (sharedMemPerBlock / 1024) - 10 << 10); // 10 KB less than max shared memory per block

// Enable FP16 if the GPU platform supports it
if (builder->platformHasFastFp16())
    config->setFlag(nvinfer1::BuilderFlag::kFP16);

// Step 4: Build engine
std::cout << "Building TensorRT engine..." << std::endl;
auto t1 = std::chrono::high_resolution_clock::now();

auto engine = std::unique_ptr<nvinfer1::IHostMemory>(builder->buildSerializedNetwork(*network, *config));
if (!engine) {
    std::cerr << "Failed to build engine!" << std::endl;
    return 1;
}

auto t2 = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration<double>(t2 - t1).count();
std::cout << "Engine built in " << duration/60 << " minutes" << std::endl;

// Step 5: Save engine to file
std::ofstream outFile(engineOutputPath, std::ios::binary);
outFile.write(reinterpret_cast<const char*>(engine->data()), engine->size());
outFile.close();

std::cout << "Successfully built TensorRT engine: " << engineOutputPath << std::endl;

return 0;

}

I was printed all layer but nothing are null

Layer 0: input_cast_to_/backbone/stem/stem.0/Conv
Layer 1: /backbone/stem/stem.0/Conv
Layer 2: /backbone/stem/stem.2/Relu
Layer 3: /backbone/stem/stem.3/Conv
Layer 4: /backbone/stem/stem.5/Relu
Layer 5: /backbone/stem/stem.6/Conv
Layer 6: /backbone/stem/stem.8/Relu
Layer 7: /backbone/maxpool/MaxPool
Layer 8: /backbone/layer1/layer1.0/conv1/Conv
Layer 9: /backbone/layer1/layer1.0/relu/Relu
Layer 10: /backbone/layer1/layer1.0/conv2/Conv
Layer 11: /backbone/layer1/layer1.0/relu_1/Relu
Layer 12: /backbone/layer1/layer1.0/conv3/Conv
Layer 13: /backbone/layer1/layer1.0/downsample/downsample.0/Conv
Layer 14: /backbone/layer1/layer1.0/Add
Layer 15: /backbone/layer1/layer1.0/relu_2/Relu
Layer 16: /backbone/layer1/layer1.1/conv1/Conv
Layer 17: /backbone/layer1/layer1.1/relu/Relu
Layer 18: /backbone/layer1/layer1.1/conv2/Conv
Layer 19: /backbone/layer1/layer1.1/relu_1/Relu
Layer 20: /backbone/layer1/layer1.1/conv3/Conv
Layer 21: /backbone/layer1/layer1.1/Add
Layer 22: /backbone/layer1/layer1.1/relu_2/Relu
Layer 23: /backbone/layer1/layer1.2/conv1/Conv
Layer 24: /backbone/layer1/layer1.2/relu/Relu
Layer 25: /backbone/layer1/layer1.2/conv2/Conv
Layer 26: /backbone/layer1/layer1.2/relu_1/Relu
Layer 27: /backbone/layer1/layer1.2/conv3/Conv
Layer 28: /backbone/layer1/layer1.2/Add
Layer 29: /backbone/layer1/layer1.2/relu_2/Relu
Layer 30: /backbone/layer2/layer2.0/conv1/Conv
Layer 31: /backbone/layer2/layer2.0/relu/Relu
Layer 32: /backbone/layer2/layer2.0/conv2/Conv
Layer 33: /backbone/layer2/layer2.0/relu_1/Relu
Layer 34: /backbone/layer2/layer2.0/conv3/Conv
Layer 35: /backbone/layer2/layer2.0/downsample/downsample.0/Conv
Layer 36: /backbone/layer2/layer2.0/Add
Layer 37: /backbone/layer2/layer2.0/relu_2/Relu
Layer 38: /backbone/layer2/layer2.1/conv1/Conv
Layer 39: /backbone/layer2/layer2.1/relu/Relu
Layer 40: /backbone/layer2/layer2.1/conv2/Conv
Layer 41: /backbone/layer2/layer2.1/relu_1/Relu
Layer 42: /backbone/layer2/layer2.1/conv3/Conv
Layer 43: /backbone/layer2/layer2.1/Add
Layer 44: /backbone/layer2/layer2.1/relu_2/Relu
Layer 45: /backbone/layer2/layer2.2/conv1/Conv
Layer 46: /backbone/layer2/layer2.2/relu/Relu
Layer 47: /backbone/layer2/layer2.2/conv2/Conv
Layer 48: /backbone/layer2/layer2.2/relu_1/Relu
Layer 49: /backbone/layer2/layer2.2/conv3/Conv
Layer 50: /backbone/layer2/layer2.2/Add
Layer 51: /backbone/layer2/layer2.2/relu_2/Relu
Layer 52: /backbone/layer2/layer2.3/conv1/Conv
Layer 53: /backbone/layer2/layer2.3/relu/Relu
Layer 54: /backbone/layer2/layer2.3/conv2/Conv
Layer 55: /backbone/layer2/layer2.3/relu_1/Relu
Layer 56: /backbone/layer2/layer2.3/conv3/Conv
Layer 57: /backbone/layer2/layer2.3/Add
Layer 58: /backbone/layer2/layer2.3/relu_2/Relu
Layer 59: /backbone/layer3/layer3.0/conv1/Conv
Layer 60: /backbone/layer3/layer3.0/relu/Relu
Layer 61: /backbone/layer3/layer3.0/conv2/Conv
Layer 62: /backbone/layer3/layer3.0/relu_1/Relu
Layer 63: /backbone/layer3/layer3.0/conv3/Conv
Layer 64: /backbone/layer3/layer3.0/downsample/downsample.0/Conv
Layer 65: /backbone/layer3/layer3.0/Add
Layer 66: /backbone/layer3/layer3.0/relu_2/Relu
Layer 67: /backbone/layer3/layer3.1/conv1/Conv
Layer 68: /backbone/layer3/layer3.1/relu/Relu
Layer 69: /backbone/layer3/layer3.1/conv2/Conv
Layer 70: /backbone/layer3/layer3.1/relu_1/Relu
Layer 71: /backbone/layer3/layer3.1/conv3/Conv
Layer 72: /backbone/layer3/layer3.1/Add
Layer 73: /backbone/layer3/layer3.1/relu_2/Relu
Layer 74: /backbone/layer3/layer3.2/conv1/Conv
Layer 75: /backbone/layer3/layer3.2/relu/Relu
Layer 76: /backbone/layer3/layer3.2/conv2/Conv
Layer 77: /backbone/layer3/layer3.2/relu_1/Relu
Layer 78: /backbone/layer3/layer3.2/conv3/Conv
Layer 79: /backbone/layer3/layer3.2/Add
Layer 80: /backbone/layer3/layer3.2/relu_2/Relu
Layer 81: /backbone/layer3/layer3.3/conv1/Conv
Layer 82: /backbone/layer3/layer3.3/relu/Relu
Layer 83: /backbone/layer3/layer3.3/conv2/Conv
Layer 84: /backbone/layer3/layer3.3/relu_1/Relu
Layer 85: /backbone/layer3/layer3.3/conv3/Conv
Layer 86: /backbone/layer3/layer3.3/Add
Layer 87: /backbone/layer3/layer3.3/relu_2/Relu
Layer 88: /backbone/layer3/layer3.4/conv1/Conv
Layer 89: /backbone/layer3/layer3.4/relu/Relu
Layer 90: /backbone/layer3/layer3.4/conv2/Conv
Layer 91: /backbone/layer3/layer3.4/relu_1/Relu
Layer 92: /backbone/layer3/layer3.4/conv3/Conv
Layer 93: /backbone/layer3/layer3.4/Add
Layer 94: /backbone/layer3/layer3.4/relu_2/Relu
Layer 95: /backbone/layer3/layer3.5/conv1/Conv
Layer 96: /backbone/layer3/layer3.5/relu/Relu
Layer 97: /backbone/layer3/layer3.5/conv2/Conv
Layer 98: /backbone/layer3/layer3.5/relu_1/Relu
Layer 99: /backbone/layer3/layer3.5/conv3/Conv
Layer 100: /backbone/layer3/layer3.5/Add
Layer 101: /backbone/layer3/layer3.5/relu_2/Relu
Layer 102: /backbone/layer4/layer4.0/conv1/Conv
Layer 103: /backbone/layer4/layer4.0/relu/Relu
Layer 104: /backbone/layer4/layer4.0/conv2/Conv
Layer 105: /backbone/layer4/layer4.0/relu_1/Relu
Layer 106: /backbone/layer4/layer4.0/conv3/Conv
Layer 107: /backbone/layer4/layer4.0/downsample/downsample.0/Conv
Layer 108: /backbone/layer4/layer4.0/Add
Layer 109: /backbone/layer4/layer4.0/relu_2/Relu
Layer 110: /backbone/layer4/layer4.1/conv1/Conv
Layer 111: /backbone/layer4/layer4.1/relu/Relu
Layer 112: /backbone/layer4/layer4.1/conv2/Conv
Layer 113: /backbone/layer4/layer4.1/relu_1/Relu
Layer 114: /backbone/layer4/layer4.1/conv3/Conv
Layer 115: /backbone/layer4/layer4.1/Add
Layer 116: /backbone/layer4/layer4.1/relu_2/Relu
Layer 117: /backbone/layer4/layer4.2/conv1/Conv
Layer 118: /backbone/layer4/layer4.2/relu/Relu
Layer 119: /backbone/layer4/layer4.2/conv2/Conv
Layer 120: /backbone/layer4/layer4.2/relu_1/Relu
Layer 121: /backbone/layer4/layer4.2/conv3/Conv
Layer 122: /backbone/layer4/layer4.2/Add
Layer 123: /backbone/layer4/layer4.2/relu_2/Relu
Layer 124: /image_pool/image_pool.0/GlobalAveragePool
Layer 125: /image_pool/image_pool.1/conv/Conv
Layer 126: /image_pool/image_pool.1/activate/Relu
Layer 127: /Shape
Layer 128: (Unnamed Layer* 128) [Cast]
Layer 129: /Constant_1_output_0
Layer 130: ONNXTRT_castHelper
Layer 131: /Constant_2_output_0
Layer 132: ONNXTRT_castHelper_0
Layer 133: ONNXTRT_ShapeTensorFromDims
Layer 134: ONNXTRT_ShapeElementWise
Layer 135: ONNXTRT_ShapeTensorFromDims_2
Layer 136: ONNXTRT_ShapeElementWise_3
Layer 137: ONNXTRT_ShapeTensorFromDims_5
Layer 138: ONNXTRT_ShapeElementWise_6
Layer 139: ONNXTRT_ShapeElementWise_7
Layer 140: ONNXTRT_ShapeTensorFromDims_9
Layer 141: ONNXTRT_ShapeElementWise_10
Layer 142: ONNXTRT_ShapeElementWise_11
Layer 143: ONNXTRT_ShapeTensorFromDims_13
Layer 144: ONNXTRT_ShapeElementWise_14
Layer 145: ONNXTRT_ShapeTensorFromDims_16
Layer 146: ONNXTRT_ShapeElementWise_17
Layer 147: ONNXTRT_ShapeElementWise_18
Layer 148: ONNXTRT_ShapeElementWise_19
Layer 149: ONNXTRT_ShapeTensorFromDims_21
Layer 150: ONNXTRT_ShapeElementWise_22
Layer 151: ONNXTRT_ShapeElementWise_23
Layer 152: ONNXTRT_ShapeElementWise_24
Layer 153: ONNXTRT_ShapeTensorFromDims_26
Layer 154: ONNXTRT_ShapeElementWise_27
Layer 155: /Slice
Layer 156: /Constant_3_output_0
Layer 157: /Concat
Layer 158: /aspp_modules/aspp_modules.0/conv/Conv
Layer 159: /aspp_modules/aspp_modules.0/activate/Relu
Layer 160: /aspp_modules/aspp_modules.1/depthwise_conv/conv/Conv
Layer 161: /aspp_modules/aspp_modules.1/depthwise_conv/activate/Relu
Layer 162: /aspp_modules/aspp_modules.1/pointwise_conv/conv/Conv
Layer 163: /aspp_modules/aspp_modules.1/pointwise_conv/activate/Relu
Layer 164: /aspp_modules/aspp_modules.2/depthwise_conv/conv/Conv
Layer 165: /aspp_modules/aspp_modules.2/depthwise_conv/activate/Relu
Layer 166: /aspp_modules/aspp_modules.2/pointwise_conv/conv/Conv
Layer 167: /aspp_modules/aspp_modules.2/pointwise_conv/activate/Relu
Layer 168: /aspp_modules/aspp_modules.3/depthwise_conv/conv/Conv
Layer 169: /aspp_modules/aspp_modules.3/depthwise_conv/activate/Relu
Layer 170: /aspp_modules/aspp_modules.3/pointwise_conv/conv/Conv
Layer 171: /aspp_modules/aspp_modules.3/pointwise_conv/activate/Relu
Layer 172: /c1_bottleneck/conv/Conv
Layer 173: /c1_bottleneck/activate/Relu
Layer 174: /Resize_input_cast0
Layer 175: /Resize
Layer 176: /Resize_output_cast0
Layer 177: /Concat_1
Layer 178: /bottleneck/conv/Conv
Layer 179: /bottleneck/activate/Relu
Layer 180: /Shape_1
Layer 181: (Unnamed Layer* 181) [Cast]
Layer 182: /Constant_5_output_0
Layer 183: ONNXTRT_castHelper_28
Layer 184: /Constant_6_output_0
Layer 185: ONNXTRT_castHelper_29
Layer 186: ONNXTRT_ShapeTensorFromDims_31
Layer 187: ONNXTRT_ShapeElementWise_32
Layer 188: ONNXTRT_ShapeTensorFromDims_34
Layer 189: ONNXTRT_ShapeElementWise_35
Layer 190: ONNXTRT_ShapeTensorFromDims_37
Layer 191: ONNXTRT_ShapeElementWise_38
Layer 192: ONNXTRT_ShapeElementWise_39
Layer 193: ONNXTRT_ShapeTensorFromDims_41
Layer 194: ONNXTRT_ShapeElementWise_42
Layer 195: ONNXTRT_ShapeElementWise_43
Layer 196: ONNXTRT_ShapeTensorFromDims_45
Layer 197: ONNXTRT_ShapeElementWise_46
Layer 198: ONNXTRT_ShapeTensorFromDims_48
Layer 199: ONNXTRT_ShapeElementWise_49
Layer 200: ONNXTRT_ShapeElementWise_50
Layer 201: ONNXTRT_ShapeElementWise_51
Layer 202: ONNXTRT_ShapeTensorFromDims_53
Layer 203: ONNXTRT_ShapeElementWise_54
Layer 204: ONNXTRT_ShapeElementWise_55
Layer 205: ONNXTRT_ShapeElementWise_56
Layer 206: ONNXTRT_ShapeTensorFromDims_58
Layer 207: ONNXTRT_ShapeElementWise_59
Layer 208: /Slice_1
Layer 209: /Constant_7_output_0
Layer 210: /Concat_2
Layer 211: /Resize_1_input_cast0
Layer 212: /Resize_1
Layer 213: /Resize_1_output_cast0
Layer 214: /Concat_3
Layer 215: /sep_bottleneck/sep_bottleneck.0/depthwise_conv/conv/Conv
Layer 216: /sep_bottleneck/sep_bottleneck.0/depthwise_conv/activate/Relu
Layer 217: /sep_bottleneck/sep_bottleneck.0/pointwise_conv/conv/Conv
Layer 218: /sep_bottleneck/sep_bottleneck.0/pointwise_conv/activate/Relu
Layer 219: /sep_bottleneck/sep_bottleneck.1/depthwise_conv/conv/Conv
Layer 220: /sep_bottleneck/sep_bottleneck.1/depthwise_conv/activate/Relu
Layer 221: /sep_bottleneck/sep_bottleneck.1/pointwise_conv/conv/Conv
Layer 222: /sep_bottleneck/sep_bottleneck.1/pointwise_conv/activate/Relu
Layer 223: /conv_seg/Conv
Layer 224: /conv_seg/Conv_cast_to_output

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the ONNX parser setup and the buildSerializedNetwork call in the provided C++ reproduction, using the referenced model.onnx path and TensorRT-RTX 1.0.0.21 environment. Reproduce the layer error and determine which input or build condition triggers it; done should be a confirmed diagnosis with a reproducible result.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.