opencl-有没有办法重新分配本地内存?

时间:2015-06-24 10:59:49

标签: opencl

有没有办法在同一个内核中重新分配本地内存

EX)

    __local float arr[size 1] //maximum size
    ..
     arr usage
    ..
    free arr
    __local float arr2[size 2] //smaller than size1
    arr2 usage

如果我想使用不同的目的,我应该重用arr不同的索引吗?

2 个答案:

答案 0 :(得分:2)

不,您无法在OpenCL中动态重新分配内存。 您可以定义一个或多个__local数组,具体取决于它们当前的大小,因为本地内存有限。 您还可以将以前定义的数组重用于其他目的。 如果每个内核调用需要不同的数组大小,那么您可以将本地数组作为内核参数传递,并决定主机每次调用的大小。

答案 1 :(得分:0)

它是C99,所以你可以组合你想要顺序使用的结构或数组。他们会分享记忆。