tensorRT
WX Chen
实用技术总结,前沿科技分享,欢迎交流技术和业务
展开
-
tensorRT插件
tensorRT自定义算子插件enqueue实际插件op的执行函数,我们自己实现的cuda操作就放到这里https://oldpan.me/archives/tensorrt-plugin-one-post-get-itTensorRT插件的存在目的,主要是为了让我们实现TensorRT目前还不支持的算子https://zhuanlan.zhihu.com/p/297002406https://github.com/zerollzeng/tiny-tensorrt/blob/mas.原创 2021-12-07 09:21:11 · 685 阅读 · 0 评论 -
tensorRT自定义算子
tensorflow建自定义算子tensorflow建自定义算子参考:https://blog.csdn.net/xiangxianghehe/article/details/81002227Compute应该是固定的名字或者这个:https://www.tensorflow.org/guide/create_op?hl=zh-cn请先创建一个名为 zero_out.cc 的文件要创建其中一个内核,请先创建一个扩展 OpKernel 并重写 OpKernel 方法的类。实现内核后,您需要将其原创 2021-12-06 11:53:30 · 1085 阅读 · 0 评论 -
输出engine网络层
参考代码:layer = network->getLayer(i);https://codeleading.com/article/6074265133/nvinfer1::ILayerhttps://www.ccoderun.ca/programming/doxygen/tensorrt/classnvinfer1_1_1IScaleLayer.html各网络层对应的编号:搜索LayerTypehttps://docs.nvidia.com/deeplearning/tensorr原创 2021-12-06 11:48:31 · 124 阅读 · 0 评论 -
转动态分辨率tensorRT的pytorch代码修改
1、条件分支删除2、view不能输入-13、torch.tensor加@torch.jit.script修饰,入参必须是tensor类型,不能用.to(device)4、不能tensor转python类型,改用//运算5、reshape改为view,要加.contiguous()6、不能用max()或min()遇到问题:Get cuda error during getBestTactic: PWN(Sigmoid_3299解决:try a small batch size and原创 2021-09-01 19:02:28 · 445 阅读 · 0 评论 -
inputs.at(2).is_weights() && “Clip max value must be an initializer!“
转trt遇到以上问题。解决方案:将torch.clamp_max()替换为torch.clamp()解决原创 2021-08-02 20:31:28 · 935 阅读 · 4 评论 -
../builder/cudnnBuilderGraphOptimizer.cpp (307) - Assertion Error in findOne: 0 (it != v.end())
转trt遇到以上问题。解决方案:是onnx图的状态问题。可以参考https://github.com/NVIDIA/TensorRT/issues/548原创 2021-08-02 20:28:53 · 434 阅读 · 0 评论 -
RuntimeError: CUDA error: an illegal memory access was encountered
转trt遇到以上问题。解决方案:是pytorch版本问题,选择合适版本解决。参考https://github.com/mileyan/AnyNet/issues/15原创 2021-08-02 20:26:40 · 286 阅读 · 0 评论 -
ONNX symbolic expected a constant value in the trace
pth转onnx遇到以上问题解决方案:将原来的变量换为固定数值解决。如:scale=0.5flow=F.interpolate(flow,scale_factor=scale,mode='bilinear',align_corners=True)*0.5改为flow=F.interpolate(flow,scale_factor=0.5,mode='bilinear',align_corners=True)*0.5...原创 2021-08-02 19:49:53 · 159 阅读 · 0 评论 -
tensorRT混合精度
精度类型:DataType::kFLOAT, DataType::kHALF and DataType::kINT32 DataType::kINT8指定特定层的精度:layer->setPrecision(nvinfer1::DataType::kINT8)如何查找特定层:void PrintLayerInfo(nvinfer1::INetworkDefinition *network){std::cout << "------Network layer.原创 2021-07-05 14:56:23 · 581 阅读 · 0 评论 -
转trt步骤记录
tensorflow转trt:# 替换不可行的算子# 在pb代码目录,运行 CUDA_VISIBLE_DEVICES=-1 python eval_png.py 得到.pb(在CUDA11环境下,tensorflow要在cpu上验证结果)# 查看.pb最后一个节点# 下载tf2onnx包:https://github.com/onnx/tensorflow-onnx# 替换目录下tf2onnx/onnx_opset/tensor.py的内容,如下# 如果要引入自定义算子,添加目录.原创 2021-06-10 14:35:03 · 948 阅读 · 2 评论 -
tensorflow自定义CUDA算子
当我们在说GPU并行计算时,其实是指的基于CPU+GPU的异构计算架构。典型的CUDA程序的执行流程如下:分配host内存,并进行数据初始化;分配device内存,并从host将数据拷贝到device上;调用CUDA的核函数在device上完成指定的运算;将device上的运算结果拷贝到host上;释放device和host上分配的内存。kernel是在device上线程中并行执行的函数,核函数用__global__符号声明,在调用时需要用<<<grid, block&g原创 2021-04-02 09:05:01 · 1141 阅读 · 1 评论