Как загрузить пользовательские данные в графический процессор, выполнить некоторые вычисления, а затем вернуть данные с C#

Место общения программистов C#
Anonymous
Как загрузить пользовательские данные в графический процессор, выполнить некоторые вычисления, а затем вернуть данные с

Сообщение Anonymous »

Я уже некоторое время экспериментирую с OpenGL и пользовательским рендерингом, но от этого приложения я хочу модифицировать большие матрицы данных с помощью графического процессора и CUDA. Для этого я использую C#, но мой предыдущий опыт работы с OpenGl был связан с C++. Я хочу загрузить матрицу в графический процессор, затем запустить какой-то шейдер для этих данных, а затем считать какой-то буфер результатов после завершения вычислений.

Код: Выделить всё

using System;
using Emgu.CV.Cuda;
using Emgu.CV;
namespace OpenCV_Test
{
internal class Program
{
static void Main(string[] args)
{
if (!CudaInvoke.HasCuda)
{
Console.WriteLine("CUDA is not available on this machine.");
return;
}
// I want to upload this data to the gpu / Create some sort of buffer
Matrix matrix = new Matrix(10000, 5);

// Then run some calculations on the data using some sort of Cuda-Code/HLSL Shader code
// Preferably on each row

// Return different data using another buffer

}
}
}
Я видел довольно много руководств о том, как применять базовые манипуляции с изображениями с помощью OpenCV, и я надеюсь, что кто-нибудь сможет подтолкнуть меня в правильном направлении. Есть ли способ скомпилировать шейдер, как с помощью opengl, а затем запустить его на заданных данных?
Заранее спасибо!
Хотя я видел, что у меня должна быть возможность Чтобы создать какое-то собственное ядро ​​для моего варианта использования, мне неясно, как это сделать с помощью C #. В Интернете я нашел несколько примеров использования C++, но мне не удалось найти какой-либо образец, отражающий желаемый вариант использования.
Как запустить собственное ядро ​​OpenCL в OpenCV (3.0) .0) ОКЛ? -
Как определить ядро ​​для filter2d в EMGU CV -
Как запустить собственное ядро ​​OpenCL в OpenCV (3.0.0) OCL?

Подробнее здесь: https://stackoverflow.com/questions/786 ... return-the

Вернуться в «C#»