NVCCCompiler

CreateLibrary[src, name, "Compiler"->NVCCCompiler]
src のCUDAコード文字列をコンパイルしてライブラリにし,そのライブラリへの完全パスを返す.

CreateLibrary[{file, ...}, name, "Compiler"->NVCCCompiler]
CUDAとCの複数のソースファイルをコンパイルしてライブラリにし,そのライブラリへの完全パスを返す.

CreateExecutable[src, name, "Compiler"->NVCCCompiler]
src のCUDAコード文字列をコンパイルして実行ファイルにし,その実行ファイルへの完全パスを返す.

CreateExecutable[{file, ...}, name, "Compiler"->NVCCCompiler]
CUDA,mprep,Cの複数のソースファイルをコンパイルして実行ファイルにし,その実行ファイルへの完全パスを返す.

CreateObjectFile[src, name, "Compiler"->NVCCCompiler]
src のCUDAコード文字列をコンパイルしてオブジェクトファイルにし,そのオブジェクトファイルへの完全パスを返す.

CreateObjectFile[{file, ...}, name, "Compiler"->NVCCCompiler]
CUDAとCの複数のソースファイルをコンパイルしてオブジェクトファイルにし,そのオブジェクトファイルへの完全パスを返す.

詳細詳細

  • CUDALink パッケージがNeeds["CUDALink`"]でロードされていなければならない.
  • システムにサポートされているCコンパイラがインストールされていなければならない.これはWindowsではVisual Studio 2005か2008,UnixではGNU GCC 4.1,4.2,4.3である.
  • ソースが文字列の場合は,はそれをCUDAコードとして扱う.ソースが1つまたは複数の文字列なら,コードはCUDAコードを含むファイルのリストとして扱われる.
  • 出力ファイルに与えられる拡張子はファイルが作られた目的プラットフォームと使用されたオプションに依存する.
  • は内部でCUDAFunctionLoadによって使われる.
  • 以下のオプションが与えられる:
  • "CleanIntermediate"True一時ファイルを削除するかどうか
    "CompileOptions"{}NVCCコンパイラに直接渡すオプション
    "CompilerInstallation"AutomaticCUDAツールキットがインストールされている場所
    "CreateBinary"Trueバイナリファイルを作るかどうか
    "CreateCUBIN"Falseライブラリではなく.cubinファイル(GPUバイナリ)を作るかどうか
    "CreatePTX"Falseライブラリではなく.ptxファイル(GPUバイトコード)を作るかどうか
    "CUDAArchitecture"AutomaticCUDAの目的アーキテクチャ
    "Defines"{}NVCCプリプロセッサに渡された定義
    "ExtraObjectFiles"{}コンパイルに使う追加のオブジェクトファイル
    "IncludeDirectories"{}コンパイルでインクルードするディレクトリ
    "Libraries"{}リンクするライブラリ
    "LibraryDirectories"{}コンパイルでインクルードするライブラリディレクトリ
    "LinkerOptions"{}NVCCからCリンカに渡されるリンカオプション
    "MprepOptions"""mprepに渡されるオプション
    "ShellCommandFunction"Noneコンパイルで使用するシェルコマンドで呼び出す関数
    "ShellOutputFunction"Noneコンパイルコマンドの実行によるシェル出力で呼び出す関数
    "SystemCompileOptions"{}基本のコンパイルオプション
    "SystemIncludeDirectories"Automaticインクルードする CUDALinkMathematica のインクルードディレクトリ
    "SystemLibraries"Automaticリンクする CUDALinkMathematica のライブラリ
    "SystemLibraryDirectories"Automaticインクルードする CUDALinkMathematica のライブラリディレクトリ
    "SystemLinkerOptions"AutomaticNVCCからCリンカに渡されるシステムリンカオプション
    "TargetDirectory"$CCompilerDefaultDirectoryライブラリファイルを生成するディレクトリ
    "TargetSystemID"$SystemIDどのシステム用のライブラリをコンパイルするか
    "UnmangleCode"FalseC++の名前修飾を避けるためにextern "C"でコードを囲むかどうか
    "WorkingDirectory"Automatic一時ファイルが生成されるディレクトリ
    "XCompileOptions"AutomaticNVCCからCコンパイラに渡されるコンパイルオプション
    "XCompilerInstallation"AutomaticNVCCがCコンパイラのインストールを探すディレクトリ

例題例題すべて開くすべて閉じる

例 (3)例 (3)

まず CUDALink アプリケーションをロードする:

In[1]:=
Click for copyable input

CUDAソースファイルのサンプル:

In[2]:=
Click for copyable input

コードをコンパイルしてライブラリにする:

In[3]:=
Click for copyable input
Out[3]=

CUDAを Mathematica 文字列に読み込む:

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input

インポートされた文字列を使ってCUDAライブラリを作る:imported:

In[3]:=
Click for copyable input
Out[3]=

CUDAプログラムを文字列としてインポートする:

In[1]:=
Click for copyable input
Out[1]=

CUDAプログラムをコンパイルしてCUDA実行可能バイトコード(PTX)ファイルにし,使用したコンパイルコマンドを示す:

In[2]:=
Click for copyable input
Out[2]=

出力PTXバイトコードを Mathematica で表示する:

In[3]:=
Click for copyable input
Out[3]=
New to Mathematica? Find your learning path »
Have a question? Ask support »