Описание тега thrust

Thrust is a template library of parallel algorithms with an interface resembling the C++ Standard Template Library (STL) for NVIDIA CUDA.
1 ответ

Использование thrust::max_element в проекте CUDA C

В проекте CUDA C я хотел бы попробовать использовать библиотеку Thrust, чтобы найти максимальный элемент в массиве с плавающей точкой. Кажется, мне нужна функция Thrust thrust::max_element(). Массив, в котором я хочу использовать эту функцию, являет…
03 дек '15 в 12:49
2 ответа

Параллельное умножение множества маленьких матриц на фиксированный вектор

Ситуация следующая: у меня есть ряд (1000 с) элементов, которые задаются небольшими матрицами размеров 4x2, 9x3 ... вы понимаете. Все матрицы имеют одинаковое измерение. Я хочу умножить каждую из этих матриц на фиксированный вектор предварительно ра…
04 фев '14 в 23:34
0 ответов

Тяга /CUDA: Какой эффективный способ суммировать элементы по координатам подматрицы?

2D матрица: thrust::device_vector<bool> (строка за строкой).Координаты подматрицы: struct { uint16_t left; uint16_t top; uint16_t right; uint16_t bottom; }; Как наиболее эффективно найти сумму матричных элементов, определяемых координатами под…
27 июл '18 в 16:48
1 ответ

Более быстрый способ вычислить массив в Thrust-Cuda

У меня есть четыре массива: thrust::device_vector<int> vertices; thrust::device_vector<int> adjacency: thrust::device_vector<int> degree_summation; thrust::device_vector<int> degree; Массив индексов вершин представляет вершин…
01 дек '14 в 13:48
2 ответа

Копирование части набора данных в несколько графических процессоров CUDA с использованием Thrust

Я хочу разделить набор данных между несколькими графическими процессорами, причем каждый графический процессор получает только подмножество данных для кода CUDA с использованием Thrust. Прикрепленный ниже код, который компилируется; однако, thrust в…
16 июн '15 в 19:00
2 ответа

Проверка, содержит ли матрица nans или бесконечные значения в CUDA

Какой эффективный способ проверить большую матрицу для inf/nan элементы в CUDA (C++)? Матрица хранится как float* в памяти графического процессора. Мне не нужно расположение этих элементов, просто логический ответ да / нет, если присутствует хотя бы…
29 мар '14 в 17:06
1 ответ

Оценка выражений, состоящих из поэлементных матричных операций в Thrust

Я хотел бы использовать Thrust для оценки выражений, состоящих из поэлементных матричных операций. Чтобы было понятно, рассмотрим выражение вроде: D=A*B+3*sin(C) где A, B, C а также D Матрицы, конечно же, одного размера. Краткое руководство по тяге …
05 июл '13 в 11:00
1 ответ

Итераторы тяговых устройств не работают

Я не знаю, почему приведенный ниже код не выводит 1,2, а некоторые случайные числа #include <thrust/set_operations.h> #include <thrust/device_vector.h> #include <ostream> int main() { int a[]= { 1,2,3,4,5,6}; int b[] = {1,2,8}; int…
27 окт '11 в 07:35
1 ответ

thrust::copy не работает для device_vectors

Я скопировал этот код из документации Thrust: #include <thrust/copy.h> #include <thrust/device_vector.h> #include <thrust/host_vector.h> int main() { thrust::device_vector<int> vec0(100); thrust::device_vector<int> vec1…
25 дек '15 в 06:50
2 ответа

Как сортировать ключи с меньшей точностью с помощью библиотеки Thrust

У меня есть набор целочисленных значений, и я хочу отсортировать их с помощью Thrust. Есть ли возможность использовать только некоторые старшие / младшие биты в этой сортировке. Если возможно, я не хочу использовать пользовательский компаратор, пото…
13 июн '12 в 09:33
1 ответ

Является ли sort_by_key в тяге блокирующим вызовом?

Я неоднократно ставлю в очередь последовательность ядер: for 1..100: for 1..10000: // Enqueue GPU kernels Kernel 1 - update each element of array Kernel 2 - sort array Kernel 3 - operate on array end // run some CPU code output "Waiting for GPU to f…
16 фев '15 в 11:35
1 ответ

Число производительности преобразования тяги

Может ли кто-нибудь сказать мне, что режимы тяги блокируют или не блокируют? Я хочу время, вот фрагменты кода- фрагмент кода -1: clock_t start,end; start = clock(); thrust::transform( a.begin(), a.end(), b.begin(), thrust::negate<int>()); end …
1 ответ

Об определении переменной в cuda

Я должен загрузить данные из файла. Каждый образец 20-мерный. Поэтому я использовал эту структуру данных, чтобы помочь мне с этим: class DataType { vector<float> d; } Но хотя я использую это определение переменной, он не может работать. thrust…
13 июл '13 в 07:14
1 ответ

nVidia Thrust: device_ptr Const-Correctness

В моем проекте, который широко использует nVidia CUDA, я иногда использую Thrust для вещей, которые он делает очень, очень хорошо. Уменьшение - это один алгоритм, который особенно хорошо реализован в этой библиотеке, и одно из применений снижения - …
24 ноя '15 в 11:44
1 ответ

Максимальное количество потоков, которые могут быть инициированы в одном ядре CUDA

Меня смущает максимальное количество потоков, которое можно запустить в графическом процессоре Fermi. Мой запрос устройства GTX 570 говорит следующее. Maximum number of threads per block: 1024 Maximum sizes of each dimension of a block: 1024 x 1024 …
22 авг '12 в 17:06
3 ответа

Вектор смещения в тяге

Я смотрю на проект, связанный с онлайн (потоковым) данными. Я хочу работать со скользящим окном этих данных. Например, скажем, что я хочу хранить 10 значений в моем векторе. Когда приходит значение 11, я хочу сбросить значение 1, переместить все зан…
02 июл '12 в 20:25
1 ответ

Сжатие потока с помощью Thrust; лучшие практики и самый быстрый способ?

Я заинтересован в портировании некоторого существующего кода для использования Thrust, чтобы посмотреть, смогу ли я сравнительно легко ускорить его на GPU. Чего я хочу добиться, так это операции сжатия потока, в которой будут храниться только ненуле…
07 июн '15 в 08:05
1 ответ

Выполнение монопольного сканирования для thrust::device_vector определенной пользователем структуры. Ошибка компилятора

Я работаю с библиотекой Thrust, поставляемой с CUDA. Я пытался выполнить инклюзивное и эксклюзивное сканирование вектора устройства определенной пользователем структуры. Вот код #include <iostream> #include <thrust/copy.h> #include <t…
26 дек '11 в 23:13
1 ответ

thrust::sort_by_key: как сохранить результат в отдельном массиве?

Я в настоящее время сортирую значения по ключу следующим образом thrust::sort_by_key(thrust::device_ptr<int>(keys), thrust::device_ptr<int>(keys + numKeys), thrust::device_ptr<int>(values); который сортирует массив значений по ключ…
18 янв '13 в 05:47
2 ответа

Комплексное преобразование тяги 3 векторов разных размеров

Здравствуйте, у меня есть этот цикл в C+, и я пытался преобразовать его в тяги, но без получения тех же результатов... Есть идеи? благодарю вас Код C++ for (i=0;i<n;i++) for (j=0;j<n;j++) values[i]=values[i]+(binv[i*n+j]*d[j]); Код тяги thrust…
30 сен '11 в 23:51