Ленивая стратегия на OpenCL1.1 - PullRequest
3 голосов
/ 06 марта 2012

Есть ли в OpenCL1.1 ленивая стратегия для обработки передачи данных? Я знаю, что у CUDA есть такая стратегия, поэтому вы можете выделить больше памяти, чем у вас есть на устройстве.

1 Ответ

4 голосов
/ 06 марта 2012

Я не так хорошо знаком с OpenCL, но нашел соответствующее обсуждение на форуме NVIDIA .

Также подумал, что я отвечу на упоминание CUDA на случай, если кто-нибудь встретит позже ...

Я не думаю, что в родной CUDA есть способ выделить больше памяти, чем физически доступно на устройстве. Фактически, даже на больших картах вы не можете выделить один большой непрерывный массив, потому что карта имеет отдельные банки памяти, например в дни C1060 я вспоминаю о превышении лимита в 1,5 Гб на картах 3 Гб. Не могли бы вы предоставить некоторые подробности того, что вы подразумеваете под CUDA, разрешающей такие большие ассигнования?

Если вы используете ArrayFire (или Jacket ), у них есть основная идея виртуальная память : если у вас много небольших выделений, которые в сумме больше, чем доступно на карте, тогда он сохраняет только самые важные данные на устройстве, в то время как другие части хранятся на хосте до тех пор, пока они не понадобятся.

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