2015-06-24 2 views
0

Есть ли способ, чтобы перераспределить локальную память в одном же ядре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

Нет, вы не можете динамически перераспределять память в OpenCL. Вы можете определить один или несколько массивов __local в зависимости от их размера, так как локальная память ограничена. Вы также можете повторно использовать ранее определенный массив для других целей. Если вам нужен разный размер массива для каждого вызова ядра, вы можете передать локальный массив в качестве параметра ядра и принять решение о том, какой размер должен быть указан для каждого вызова.

0

Это C99, поэтому вы можете сделать объединение структуры или массивов, которые вы хотите использовать последовательно. Они разделяли бы память.

Смежные вопросы