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++ 코드를 작성할 필요 없이, .NET 개발자는 관리되는 코드에서 직접 장치 메모리 관리 및 커널 실행이 가능합니다.

작동 방식

이 프로젝트는 CUDA Driver API(버전 13.2)에 대한 포괄적인 래퍼로, C#에서 cuda.h를 1:1로 표현합니다. CUDA 컨텍스트, 커널, 장치 변수를 C# 클래스로 추상화합니다. 또한 cuBLAS, cuFFT, cuRand, cuSolver, cuSparse, NPP, nvjpeg, nvJitLink, NVRTC와 같은 주요 CUDA 라이브러리의 래퍼도 포함되어 있습니다.

대상 사용자

C# 생태계를 벗어나지 않고 NVIDIA GPU 가속 및 CUDA 라이브러리를 애플리케이션에서 활용하고자 하는 .NET 개발자.

주요 특징

  • 포괄적인 라이브러리 지원: cuBLAS, cuFFT, NVRTC 등 다양한 CUDA 라이브러리의 래퍼 제공.
  • 간편한 메모리 관리: [] 연산자를 통한 장치 메모리 직접 접근 및 호스트와 장치 간 데이터 전송을 위한 암시적 변환 연산자 지원.
  • 크로스 플랫폼: .NET Core >3.1용 네이티브 Linux 지원, .NET Framework 4.8 호환성 제공.
  • 그래픽스 상호운용: SlimDX 및 OpenTK를 통해 DirectX 및 OpenGL과의 그래픽스 상호운용 래퍼 포함.
  • 유연한 타입 지정: CudaDeviceVariable에서 사용자 정의 값 형식(구조체) 지원.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • Dispatch