现在这个问题解决了吗,咱们sdk中有一个示例跟你描述的比较像,neuware/samples/BANG/bang-c++/union4/pipeline_nmem_union4/main.mlu
问题暂时解决了。需要将每一个__mlu_global__核函数 单独写在一个.mlu文件里,形成单独的编译单元。
目前对这个问题出现的原因有了新的发现:我在同一个mlu文件中定义了多个__mlu_global__ 核函数,在前面的核函数中定义的nram空间可以达到200K甚至更多,但在后面的核函数里,空间逐渐变小。如果将前面核函数注释掉,后面的核函数在编译时就不会出错。
还能提供更详细一点的信息吗,srcimg1和srcimg2分别是多大,参数pw是多少,几个核运行。
目前对这个问题出现的原因有了新的发现:我在同一个mlu文件中定义了多个
__mlu_global__ 核函数,在前面的核函数中定义的nram空间可以达到200K甚至更多,但在后面的核函数里,空间逐渐变小。如果将前面核函数注释掉,后面的核函数在编译时就不会出错。
srcimg 1920*1080 pw为1920 16核运行
实际使用中,nram的分配远不到512KB就会爆这个错误,是因为内部某些透明的内容占用了空间,导致实际在编码中可使用的空间没有那么多么?
您好,请提供下使用的软件环境中,各组件版本,如CNToolkit等
【寒武纪硬件产品型号】:MLU270
【使用操作系统】:ubuntu
【使用驱动版本】:
v4.20.6
【SDK版本】:
1.7.0
【CNToolkit版本】:
1.7.3
请登录后评论