Skip to content

Commit 792e1f3

Browse files
committed
Make sure torch inputs contiguous before passing data pointer to TRT execution
1 parent 3da4947 commit 792e1f3

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

core/execution/register_trt_op.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@ namespace execution {
1111

1212
std::vector<at::Tensor> RunCudaEngine(nvinfer1::IExecutionContext* ctx, std::pair<uint64_t, uint64_t> io, std::vector<at::Tensor>& inputs) {
1313
std::vector<void*> gpu_handles;
14+
15+
std::vector<at::Tensor> contig_inputs{};
16+
contig_inputs.reserve(inputs.size());
1417
for (size_t i = 0; i < inputs.size(); i++) {
15-
auto in_gpu = inputs[i].to(at::kCUDA);
16-
auto shape = core::util::toDimsPad(in_gpu.sizes(), 4);
17-
//in_gpu = inputs[i].reshape(core::util::toVec(shape));
18-
//LOG_DEBUG("In shape:" << in_gpu.sizes() );
18+
contig_inputs.push_back(inputs[i].to(at::kCUDA).contiguous());
19+
auto shape = core::util::toDimsPad(contig_inputs.back().sizes(), 4);
20+
//LOG_DEBUG("In shape:" << contig_inputs.back().sizes() );
1921
ctx->setBindingDimensions(i, shape);
20-
gpu_handles.push_back(in_gpu.data_ptr());
22+
gpu_handles.push_back(contig_inputs.back().data_ptr());
2123
}
2224

2325
TRTORCH_CHECK(ctx->allInputDimensionsSpecified(), "Not enough inputs provided (execution.RunCudaEngine)");

0 commit comments

Comments
 (0)