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アクセラレーションを簡単に統合・アクセスできる方法を提供します。GPUとのインターフェースに低レベルのC++コードを書く必要がなくなり、.NET開発者はマネージドコードから直接デバイスメモリを管理し、カーネルを実行できるようになります。

動作方法

このプロジェクトはCUDA Driver API(バージョン13.2)の包括的なラッパーとして機能し、cuda.hをC#で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