Как вычислить экспоненту матрицы внутри потока CUDA?

Мне нужно как-то уметь вычислять экспоненту матрицы внутри ядра CUDA. Есть ли какая-либо библиотека, чья функция для этой задачи может быть вызвана из потока CUDA? Или, возможно, можно было бы реализовать эту функцию с нуля, как __device__ функционировать?

Я использую Microsoft Visual Studio 2008 Express для компиляции кода хоста и компилятор nvcc из инструментария 3.2v.

Графический процессор: NVIDIA GeForce GT640 (вычислительная способность 3.0)

0

Решение

Нет, в библиотеке CUDA нет таких вещей, но вы можете взглянуть на этот код, чтобы помочь вам разработать решение в CUDA:

https://github.com/poliu2s/MKL/blob/master/matrix_exponential.cpp

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

В принципе:

__global__ child( ... )
{
....
}

__global__ parent( ... )
{
child<<< ..., ... >>>( ... )
}

Надеюсь, что это может помочь

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]