CUDA с картой <значение, ключ> и атомарные операции - PullRequest
3 голосов
/ 28 февраля 2010

Насколько я знаю, я могу использовать шаблоны C ++ в коде устройства CUDA. Так что, если я использую карту для создания словаря, будет ли операция вставки новых значений атомарной?

Я хочу посчитать количество появлений определенных значений, то есть создать словарь кодов с вероятностями кодов.

Спасибо

Macs

Ответы [ 2 ]

2 голосов
/ 01 марта 2010

Вы не можете использовать STL в коде устройства. Вы можете проверить thrust на аналогичную функциональность (в частности, проверить экспериментальное пространство имен).

Шаблоны хороши в коде устройства, CUDA C в настоящее время поддерживает довольно много функций C ++, хотя некоторые большие, такие как виртуальные функции и исключения, пока невозможны (и будут возможны только на оборудовании Fermi).

Если вы решите реализовать это самостоятельно, вы можете использовать встроенную функцию atomicAdd () для получения атомарной операции, за дополнительной информацией обращайтесь к Руководству по программированию CUDA .

1 голос
/ 01 марта 2010

если я правильно понимаю ваш вопрос, вы пытаетесь использовать карту STL внутри cuda? скорее всего это не сработает. Вам придется разработать свою собственную реализацию. Однако вы можете найти реализацию в библиотеке Thrust.

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