CUDA: Обертывание выделения памяти устройства в C++

Вместо списка вы, вероятно, должны использовать HashSet, тогда вы можете использовать следующий Linq для фильтрации узлов на основе локального имени

var nodeNames = new HashSet<string> { "Name", "LastName", "Color" };

foreach(var child in xdoc.Elements().Where(e => nodeNames.Contains(e.Name.LocalName)))
{
    // Your code here.
}
17
задан Konrad Rudolph 18 November 2008 в 21:23
поделиться

3 ответа

Я пошел бы с размещением новый подход. Тогда я определил бы класс, который соответствует станд.:: allocator<> интерфейс. В теории Вы могли передать этот класс как шаблонный параметр в станд.:: vector<> и станд.:: map<> и т.д.

Остерегаются, я услышал, что выполнение таких вещей чревато трудностью, но по крайней мере Вы узнаете намного больше о STL этот путь. И Вы не должны перестраивать свои контейнеры и алгоритмы.

5
ответ дан 30 November 2019 в 14:12
поделиться

Существует несколько проектов, которые делают попытку чего-то подобного, например CUDPP.

Тем временем, однако, я реализовал свое собственное средство выделения, и оно работает хорошо и было просто (> 95%-й шаблонный код).

2
ответ дан 30 November 2019 в 14:12
поделиться

Тем временем были некоторые дальнейшие разработки (не столько с точки зрения API CUDA, но, по крайней мере, с точки зрения проектов, пытающихся использовать STL-подобный подход к Управление данными CUDA).

В частности, есть проект из исследования NVIDIA: thust

7
ответ дан 30 November 2019 в 14:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: