Описание тега dynamic-parallelism

None Динамический параллелизм относится к возможности CUDA для запуска ядра устройства, который должен выполняться из ядра устройства
1 ответ

Ошибка связи динамического параллелизма cuda c

Я пытаюсь связать свою программу динамического параллелизма в CUDA Kepler следующим образом: nvcc -m32 -arch=sm_35 -dc -Xcompiler '-fPIC' DFS_Solving.cu nvcc -m32 -arch=sm_35 -Xcompiler '-fPIC' -dlink DFS_Solving.o -o link.o gcc -shared -Wl,-soname,…
11 мар '15 в 15:31
0 ответов

Почему некоторые дочерние сетки ядра не возвращаются в родительскую сетку мгновенно?

Я пытаюсь использовать динамический параллелизм, запуская ядро ​​<<<1,1>>> ("Контроллер"), которое будет запускать другие вычислительные сетки в зависимости от их результата. Контроллеру нужны результаты вычислений для определения следующего ядра, к…
18 янв '19 в 14:43
2 ответа

CUDA Dynamic Parallelism, bad performance

We are having performance issues when using the CUDA Dynamic Parallelism. At this moment, CDP is performing at least 3X slower than a traditional approach. We made the simplest reproducible code to show this issue, which is to increment the value of…
19 июл '17 в 21:10
1 ответ

Как выполнить реляционное соединение двух контейнеров данных на графическом процессоре (предпочтительно CUDA)?

Что я пытаюсь сделать: На GPU я пытаюсь имитировать соглашения, используемые SQL в реляционной алгебре для выполнения объединений в таблицах (например, Inner Join, Outer Join, Cross Join). В приведенном ниже коде я хочу выполнить Inner Join. Предста…
14 июн '16 в 13:25
3 ответа

Kepler CUDA динамический параллелизм и дивергенция потоков

Существует очень мало информации о dynamic parallelism Кеплер, из описания этой новой технологии, означает ли это, что проблема расхождения потока управления потоком в той же основе решена? Это позволяет recursion и получение ядра из кода устройства…
09 июл '12 в 06:46
1 ответ

"неизвестная ошибка" в первом cudaMalloc, если в ядре присутствует CUBLAS

У меня есть следующие минимальные .cu файл #include &lt;cuda_runtime_api.h&gt; #include &lt;cublas_v2.h&gt; #include &lt;cstdio&gt; __global__ void test() { cublasHandle_t handle = nullptr; cublasCreate(&amp;handle); } int main(int, char**) { void *…
19 сен '16 в 08:15
2 ответа

CMake для создания проекта MSVC CUDA, предназначенного для новых устройств

Мой компьютер имеет GTX 580 (вычислительная способность 2.0). Я хочу скомпилировать исходный код CUDA, использующий динамический параллелизм, функцию, представленную в вычислительных возможностях 3.5. Я знаю, что не смогу запустить программу на свое…
1 ответ

Доступ к встроенной переменной CUDA в дочернем ядре

Я пытаюсь использовать динамический параллелизм Кеплера для одного из моих приложений. Глобальный индекс потока (в родительском ядре), запускающего дочернее ядро, необходим в дочернем ядре. Другими словами, я хочу получить доступ к встроенным коорди…
02 сен '15 в 14:46
0 ответов

Поддерживает ли nvcc оптимизацию хвостового вызова в динамическом параллелизме?

В разделе C.4.3.1.2 Руководства по программированию CUDA. "Глубина вложения и синхронизации", упоминается: "Оптимизация разрешается, когда система обнаруживает, что ей не нужно резервировать место для состояния родителя в тех случаях, когда родитель…
1 ответ

Оптимизировать алгоритм, используя динамический параллелизм

У меня есть следующий фрагмент кода, и я экспериментирую с возможностями новой архитектуры Kepler. Ядро вызывается несколько раз в цикле с фиксированным значением NUM_ITERATIONS. Как вы думаете, перенесет ли цикл в родительское ядро, т. Е. Будут ли …
10 апр '14 в 21:13
1 ответ

Cublas не работает в ядре после компиляции в cubin с использованием флага -G с nvcc

У меня есть ядро ​​CUDA, которое выглядит следующим образом: #include &lt;cublas_v2.h&gt; #include &lt;math_constants.h&gt; #include &lt;stdio.h&gt; extern "C" { __device__ float ONE = 1.0f; __device__ float M_ONE = -1.0f; __device__ float ZERO = 0.…
19 авг '15 в 09:50
1 ответ

Распараллелить метод изнутри функции / ядра устройства CUDA

У меня есть уже распараллеленное ядро ​​CUDA, которое выполняет некоторые задачи, требующие частой интерполяции. Так что есть ядро __global__ void complexStuff(...) которая вызывает один или несколько раз эту функцию устройства интерполяции: __devic…
1 ответ

Имеют ли дочерние ядра, запускаемые ядром, тот же размер деформации, что и ядра, запускаемые хостом?

Когда блок ядра запускается с хоста, он имеет размер деформации 32. Это то же самое для дочерних ядер, запускаемых с помощью динамического параллелизма? Мое предположение было бы да, но я не видел это в документах. Главный вопрос, конечно, таков: ст…
06 июл '15 в 08:29
1 ответ

Как я могу синхронизировать очереди команд на стороне устройства с очередями на стороне хоста? clFinish() и markerWithWaitList выдает неверную ошибку очереди

Я использую функцию динамического параллелизма OpenCL 2.0, и каждый рабочий элемент ставит в очередь другое ядро ​​с одним рабочим элементом. Когда время завершения работы дочернего ядра велико, родительское ядро ​​завершает работу до того, как доче…
02 июл '17 в 13:02
0 ответов

AleaGPU Динамический параллелизм в F#? Как?

Это может быть простой вопрос, но я не смог найти никаких ссылок на эту тему: Как запустить ядро ​​из другого ядра?, Единственный соответствующий пример, с которым я столкнулся, - это пост:( Поддерживает ли Alea GPU динамический параллелизм?), В кот…
02 июл '18 в 13:34
1 ответ

Динамический параллелизм CUDA с драйвером API

Я пытаюсь скомпилировать и связать динамическое ядро ​​и использовать его с API драйвера CUDA на GK110. Я компилирую исходный файл.cu в Visual Studio с флагом кода перемещаемого устройства и compute_35, sm_35 в файл ptx, а затем компоновщик CUDA доб…
07 янв '15 в 22:35
1 ответ

Компиляция.cu файлов с динамическим параллелизмом (CUDA)

Я перешел на новый графический процессор GeForce GTX 980 с cc 5.2, поэтому он должен поддерживать динамический параллелизм. Однако я не смог скомпилировать даже простой код (из руководства по программированию). Я не буду приводить это здесь (не обяз…
09 янв '15 в 00:08
1 ответ

Api cudaMemsetAsync во время выполнения устройства CUDA не работает

Я пытаюсь позвонить cudaMemsetAsync из ядра (так называемый "динамический параллелизм"). Но независимо от того, какое значение я использую, оно всегда устанавливает память в 0. Вот мой тестовый код: #include "cuda_runtime.h" #include "device_launch_…
17 май '17 в 14:58
1 ответ

numba.typeinfer.TypingError: нетипизированное глобальное имя child_launch при использовании динамического параллелизма CUDA в Python ( Anaconda) на графическом процессоре NVIDIA

Мой код здесь: import numpy as np from numbapro import cuda @cuda.autojit def child_launch(data): data[cuda.threadIdx.x] = data[cuda.threadIdx.x] + 100 @cuda.autojit def parent_launch(data): data[cuda.threadIdx.x] = cuda.threadIdx.x cuda.syncthreads…
13 окт '14 в 07:40
1 ответ

Динамический параллелизм - отдельная компиляция: неопределенная ссылка на __cudaRegisterLinkedBinary

Несмотря на то, что я следовал приложению C "Компиляция динамического параллелизма" из "Руководства по программированию CUDA" и приведенным здесь решениям, мне не удается решить возникшую проблему. После компиляции и компоновки (сделать DivideParale…
25 фев '15 в 13:12