Closed fanjing8 closed 9 months ago
opencl需要设置成buffer模型(mode=65)。报错可能是显存不足导致的,检查下运行程序,内存占用情况
opencl需要设置成buffer模型(mode=65)。报错可能是显存不足导致的,检查下运行程序,内存占用情况
mode设置65尝试过了,不work。
显存使用25%不到,内存也够用。
试试使用opencl的时候把numthread改成1
试试使用opencl的时候把numthread改成1
opencl推理的问题,初测下来已经解决,万分感谢!但为什么这么改是可以的?大佬能解释一下吗?或者有什么参考资料?
使用cuda的推理的问题仍然存在。
Marking as stale. No activity in 60 days.
平台(如果交叉编译请再附上交叉编译目标平台):
Platform(Include target platform as well if cross-compiling):
Ubuntu20.04, x64
Github版本:
Github Version:
2.7.1
编译方式:
Compiling Method
编译日志:
Build Log:
opencl推理报错
c++ session接口运行mnn模型(主要是transformer module), 调用opencl推理,因为每次推理都是动态shape,所以每次infer都需要resizeSession,一般第一次resizeSession时候不会报以下错误,但是会在后面某次infer做resizeSession时候报错,错误信息如下:
内嵌的 int32_t推理错误(opencl和cuda都有这个问题)
debug发现第一次推理时候opencl输出(注意输出tensor是int32_t类型的)已经不对了。mnnTensor->print()输出结果如下,但这个结果是错误的,正确的应该是-1和不太大的整数(如小于1000),这里输出的-2147483648, -2147483648肉眼可见的错误。
others
CPU和vulkan推理,以上两个问题都没有。但是vulkan巨慢。 python版本的opengl和cuda也有以上的问题。 尝试回退到2.6.2版本(参考)以上问题任然存在。