CUB предоставляет современные, многократно используемые программные компоненты для каждого уровня модели программирования CUDA.
3 ответа

Сортировка множества маленьких массивов в CUDA

Я внедряю медианный фильтр в CUDA. Для конкретного пикселя я извлекаю его соседей, соответствующих окну вокруг пикселя, скажем, N x N (3 x 3), а теперь есть массив N x N элементы. Я не предполагаю использовать окно более 10 x 10 элементы для моего п…
12 мар '14 в 01:00
2 ответа

CUDA сокращение множества маленьких массивов неравного размера

Мне интересно, может ли кто-нибудь предложить лучший подход к вычислению среднего / стандартного отклонения большого числа относительно небольших, но разных размеров массивов в CUDA? Пример параллельного сокращения в SDK работает с одним очень больш…
1 ответ

CUB сегментированное сокращение не дает результатов

Я пытаюсь использовать примитив суммы сегментированных сокращений CUB, и я застрял на этом. Вот мой код: int main() { const int N = 7; const int num_segments = 3; int d_offsets[]= {0,3,3,7}; int *h_data = (int *)malloc(N * sizeof(int)); int *h_resul…
07 июн '17 в 09:11
1 ответ

Как работает CUB TexRefInputIterator?

CUB предоставляет итератор для текстурных ссылок, реализация которых легко доступна. Поскольку я сам не мог понять, как реализовать ссылки на текстуры с поддержкой шаблонов - их "можно объявить только как статическую глобальную переменную", - сейчас…
10 сен '15 в 01:43
2 ответа

Сокращение в CUDA

Я только начинаю изучать программирование на CUDA, и у меня возникло недоразумение по поводу сокращения. Я знаю, что глобальная память имеет большую задержку при посещении по сравнению с разделяемой памятью, но могу ли я использовать глобальную памя…
02 дек '13 в 08:57
1 ответ

Почему мой код инклюзивного сканирования в 2 раза быстрее на процессоре, чем на графическом процессоре?

Я написал короткую программу CUDA, которая использует высокооптимизированную библиотеку CUB, чтобы продемонстрировать, что одно ядро ​​из старого четырехъядерного процессора Intel Q6600 (все четыре предположительно способны к ~30 GFLOPS/ сек) может …
09 дек '14 в 04:45
1 ответ

cuda и cub реализация множественного k-выделения

Я пытаюсь реализовать множественный выбор top-k параллельно, где каждый выбор выбирает k элементов из списка из n элементов, и m таких задач должны выполняться параллельно. Я использую детеныша, чтобы сделать это. Я получил странную ошибку, и я не з…
18 янв '14 в 00:53
0 ответов

Алго для обработки больших данных с проблемой библиотеки CUDA CUB

У меня есть проблема в поиске решения для алгоритма, который я реализую. Как я могу выполнить функцию из CUB параллельно? Когда я помещаю его в глобальную функцию, я получаю сообщение об ошибке: функция (...) является функцией хоста.
4 ответа

Сортировка (маленьких) массивов по ключу в CUDA

Я пытаюсь написать функцию, которая принимает блок несортированных пар ключ / значение, таких как <7, 4> <2, 8> <3, 1> <2, 2> <1, 5> <7, 1> <3, 8> <7, 2> и сортирует их по ключу, уменьшая значения пар …
11 июл '13 в 15:19
1 ответ

CUB сокращение с использованием 2D сетки блоков

Я пытаюсь сделать сумму, используя метод сокращения CUB. Большая проблема: я не уверен, как вернуть значения каждого блока на хост при использовании двумерных сеток. #include <iostream> #include <math.h> #include <cub/block/block_redu…
01 июн '18 в 23:03
1 ответ

Получение CUB DeviceScan для работы при вызове из ядра

В настоящее время я пытаюсь узнать, как использовать CUB, чтобы, возможно, переписать код моего интегратора. Я просматривал примеры и фрагменты кода в документах, но я еще не нашел пример того, что я пытаюсь сделать. В частности, это для запуска Inc…
17 авг '14 в 21:22
1 ответ

CUB сортировка с итератором

Я хотел бы преобразовать значения и отсортировать их за один раз, например так: thrust::vector<int> dataIn = ... thrust::vector<int> dataOut = ... auto iterIn = cub::TransformInputIterator<int, Ftor, int*>(dataIn.begin(), Ftor()); …
04 сен '18 в 13:29
1 ответ

CUDA cub::DeviceScan и параметр temp_storage_bytes

Я использую cub::DeviceScan Функция и фрагмент кода примера имеет параметр temp_storage_bytes, который он использует для выделения памяти (который, между прочим, фрагмент кода никогда не освобождает). Фрагменты кода cub::DeviceScan функции с указате…
09 май '14 в 04:41
1 ответ

cub BlockRadixSort: как бороться с большим размером плитки или сортировать несколько плиток?

При использовании cub::BlockRadixSort для сортировки внутри блока, если количество элементов слишком велико, как мы с этим справимся? Если мы установим слишком большой размер тайла, общая память для временного хранилища скоро не сможет его удержать.…
03 мар '14 в 04:06
2 ответа

Использование CUB::DeviceScan

Я пытаюсь сделать эксклюзивное сокращение суммы в CUDA. Я использую библиотеку CUB и решил попробовать CUB::DeviceReduce. Тем не менее, мой результат NaN, и я не могу понять, почему. Код является: #include <cub/cub.cuh> #include <stdio.h&gt…
29 апр '14 в 04:59
1 ответ

dot_product с CUDA_CUB

__global__ void sum(const float * __restrict__ indata, float * __restrict__ outdata) { unsigned int tid = blockIdx.x * blockDim.x + threadIdx.x; // --- Specialize BlockReduce for type float. typedef cub::BlockReduce<float, BLOCKSIZE> BlockRedu…
04 июн '18 в 00:42
0 ответов

Сортировка массива разделяемой памяти в куб

Я хочу использовать cub для сортировки массива в каждом блоке для меня. Я называю ядро ​​с несколькими блоками, каждый из которых имеет 32 потока, и каждый поток имеет массив из 27 целых чисел. Стандартная сортировка по странице github cubs выглядит…
24 апр '17 в 14:44
1 ответ

Неверные результаты с CUB ReduceByKey при указании gencode

В одном из моих проектов я вижу некоторые неправильные результаты при использовании CUB's DeviceReduce::ReduceByKey. Тем не менее, использование тех же входов / выходов с thrust::redu_by_key дает ожидаемые результаты. #include "cub/cub.cuh" #include…
05 апр '17 в 18:22
1 ответ

Снижение суммы с CUB

Согласно этой статье, уменьшение суммы с CUB Library должно быть одним из самых быстрых способов сделать параллельное сокращение. Как вы можете видеть из фрагмента кода ниже, время выполнения является мерой, исключая сначала cub::DeviceReduce::Reduc…
03 сен '15 в 16:29
1 ответ

Максимальный поддерживаемый размер для библиотеки cub

Кто-нибудь знает, какой максимальный поддерживаемый размер для cub::scan? Я получил дамп ядра для входных размеров более 500 миллионов. Я хотел убедиться, что я не делаю ничего плохого... Вот мой код: #define CUB_STDERR #include <stdio.h> #inc…
09 окт '15 в 07:32