有没有办法在同一个内核中重新分配本地内存
EX)
__local float arr[size 1] //maximum size
..
arr usage
..
free arr
__local float arr2[size 2] //smaller than size1
arr2 usage
如果我想使用不同的目的,我应该重用arr
不同的索引吗?
答案 0 :(得分:2)
不,您无法在OpenCL中动态重新分配内存。
您可以定义一个或多个__local
数组,具体取决于它们当前的大小,因为本地内存有限。
您还可以将以前定义的数组重用于其他目的。
如果每个内核调用需要不同的数组大小,那么您可以将本地数组作为内核参数传递,并决定主机每次调用的大小。
答案 1 :(得分:0)
它是C99,所以你可以组合你想要顺序使用的结构或数组。他们会分享记忆。