Обработка буферов больше 65536 в Clyther / OpenCL - PullRequest
0 голосов
/ 17 декабря 2010

В настоящее время я нахожусь в процессе обнаружения OpenCL через связывающий Python Clyther.До сих пор я возился с очень простым сценарием, чтобы получить грех или cos буфера 65536. Очевидно, 65536 - это предел для буферов на моей карте, но говорят, что в моем буфере будет 16 миллионов чисел, как бы я поступил?без постоянного включения процессора в него для извлечения / отправки данных?

Что я до сих пор делал, это заполнял буфер, запускал ядро, извлекал буфер, в цикле, но это также сильно ударяло ЦП.

Я немного посмотрел на документы OpenCL, но просто не понял, как этого добиться.

Спасибо

1 Ответ

2 голосов
/ 18 декабря 2010

Это ужасно похоже на то, что вы используете __constant память. Решение состоит в том, чтобы использовать __global память вместо этого, но вы должны быть осторожны с тем, как получить к ней доступ для лучшей производительности.

__constant память - это специальное адресное пространство для часто используемых константных значений, но ограничено по размеру на текущих графических процессорах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...