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