kunzmi/managedCuda

ManagedCUDA aims an easy integration of NVidia's CUDA in .net applications written in C#, Visual Basic or any other .net language.

解决的问题

ManagedCUDA 为使用 C#、Visual Basic 或其他 .NET 语言编写的 .NET 应用程序提供了一种简单方式,使其能够轻松集成并访问 NVIDIA 的 CUDA 平台以实现 GPU 加速。它消除了编写低级 C++ 代码来与 GPU 交互的需要,使 .NET 开发者可以直接从托管代码中管理设备内存并执行内核。

工作原理

该项目作为 CUDA Driver API(版本 13.2)的全面封装,以 1:1 的方式在 C# 中表示 cuda.h。它将 CUDA 上下文、内核和设备变量抽象为 C# 类。同时,还包含了对关键 CUDA 库(如 cuBLAS、cuFFT、cuRand、cuSolver、cuSparse、NPP、nvjpeg、nvJitLink 和 NVRTC)的封装。

适用人群

希望在不脱离 C# 生态系统的情况下,利用 NVIDIA GPU 加速和 CUDA 库的 .NET 开发者。

主要亮点

  • 全面的库支持:提供对 cuBLAS、cuFFT 和 NVRTC 等多种 CUDA 库的封装。
  • 便捷的内存管理:支持通过 [] 运算符直接访问设备内存,并提供隐式转换运算符,实现主机与设备间无缝数据传输。
  • 跨平台支持:支持 .NET Core >3.1 的原生 Linux,兼容 .NET Framework 4.8。
  • 图形互操作性:通过 SlimDX 和 OpenTK 提供与 DirectX 和 OpenGL 的图形互操作封装。
  • 灵活的类型支持:支持在 CudaDeviceVariable 中使用用户自定义的值类型(结构体)。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch