CUDALink`NVCCCompiler`
CUDALink`NVCCCompiler`

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である.
  • ソースが文字列の場合は,NVCCCompilerはそれをCUDAコードとして扱う.ソースが1つまたは複数の文字列なら,コードはCUDAコードを含むファイルのリストとして扱われる.
  • 出力ファイルに与えられる拡張子はファイルが作られた目的プラットフォームと使用されたオプションに依存する.
  • NVCCCompilerは内部で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インクルードする CUDALink とWolfram言語のインクルードディレクトリ
    "SystemLibraries"Automaticリンクする CUDALink とWolfram言語のライブラリ
    "SystemLibraryDirectories"Automaticインクルードする CUDALink とWolfram言語のライブラリディレクトリ
    "SystemLinkerOptions"AutomaticNVCCからCリンカに渡されるシステムリンカオプション
    "TargetDirectory"$CCompilerDefaultDirectoryライブラリファイルを生成するディレクトリ
    "TargetSystemID"$SystemIDどのシステム用のライブラリをコンパイルするか
    "UnmangleCode"FalseC++の名前修飾を避けるためにextern "C"でコードを囲むかどうか
    "WorkingDirectory"Automatic一時ファイルが生成されるディレクトリ
    "XCompileOptions"AutomaticNVCCからCコンパイラに渡されるコンパイルオプション
    "XCompilerInstallation"AutomaticNVCCがCコンパイラのインストールを探すディレクトリ

例題

  (3)

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

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

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

CUDAをWolfram言語文字列に読み込む:

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

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

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

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

Wolfram Research (2010), NVCCCompiler, Wolfram言語関数, https://reference.wolfram.com/language/CUDALink/ref/NVCCCompiler.html.

テキスト

Wolfram Research (2010), NVCCCompiler, Wolfram言語関数, https://reference.wolfram.com/language/CUDALink/ref/NVCCCompiler.html.

CMS

Wolfram Language. 2010. "NVCCCompiler." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/CUDALink/ref/NVCCCompiler.html.

APA

Wolfram Language. (2010). NVCCCompiler. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/CUDALink/ref/NVCCCompiler.html

BibTeX

@misc{reference.wolfram_2024_nvcccompiler, author="Wolfram Research", title="{NVCCCompiler}", year="2010", howpublished="\url{https://reference.wolfram.com/language/CUDALink/ref/NVCCCompiler.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_nvcccompiler, organization={Wolfram Research}, title={NVCCCompiler}, year={2010}, url={https://reference.wolfram.com/language/CUDALink/ref/NVCCCompiler.html}, note=[Accessed: 22-November-2024 ]}