この技術を使用して、分散コンピューティングプログラミングに真剣に取り組むことにしました。 CUDAはプロセッサではなく、ビデオカードチップ上で分散コンピューティングを実行するように設計されているため、驚異的な速度での非グラフィカルな計算が可能です(数学計算におけるGeForce 8800 GTXチップのパフォーマンスはパフォーマンスとほぼ同等です) 180(!)-Nuclear Pentium 4 1.5 GHz)。 これは主に、さまざまな複雑なシステムのモデリングなど、科学的な問題を解決するために使用されます。 ちなみに、このテクノロジーはAdobe Photoshop(CS4)の最新バージョンを使用します-レンダリング画像と多くの効果はCUDAを使用して処理されます。 このテクノロジーは、シリーズ8以降のNVIDIAチップに基づくビデオカード(もちろんQuadroやTeslaを含む)でサポートされています。
すぐに言ってやった。 私はこの問題のためにubuntuを設定し、同時に自分の経験を教えます;)
注:
1. CUDAの例は、サポートされているビデオカードのないコンピューターでも安全に記述およびコンパイルできますが、使用可能な場合よりも100倍遅く動作します。
2.既知の問題があります-CUDAは、Ubuntu 8.10にデフォルトでインストールされるgcc-4.3コンパイラとの関係が悪いため、gcc-4.1にロールバックする必要があります。 以下の詳細:)
さあ始めましょう!
まず、必要なライブラリをインストールします。
$ sudo apt-get install linux-headers-`uname -r` binutils pkg-config build-essential xserver-xorg-dev libc-dev
ここで最も重要なことはlibc-devです。これがないと何も機能しません。
よし、続けて! 次に、コンパイラを構成します。 まず、必要なバージョンのgccとg ++をダウンロードします(これは重要です-バージョンは同じでなければなりません)。 これを行う最も簡単な方法は、Synapticを使用して、gcc-4.1とg ++-4.1を見つけるか、コンソールで登録することです。
$ sudo apt-get install gcc-4.1 g++-4.1
必要なコンパイラを使用するようにシステムを構成する必要があります(最後のADFを参照してください!)。 これはとんでもなく単純に行われます:
$ sudo rm -d /usr/bin/gcc
$ sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc
$ sudo rm -d /usr/bin/g++
$ sudo ln -s /usr/bin/g++-4.1 /usr/bin/g++
ところで、「古い」コンパイラを元の場所に戻すのは簡単です-上記のコマンドの4.1を4.3に置き換えてください。
もちろん、CUDAコンポーネント自体(ビデオドライバー、ツールキット、SDK)が必要です。 私たちは彼らを彼らのホームサイトから連れて行きます。 8.04のシステムを示しますが、すべて正常に機能します。
最新バージョンを使用するため、2.1のパッケージを選択します。
1. CUDAドライバー-NVIDIA-Linux-x86-180.06-pkg1.run
( Frosty同志のおかげで-バージョン180.22ドライバーが最近リリースされました。もちろん、 公式サイトからダウンロードできます。インストール手順は変わりません)
2. CUDAツールキット-cuda-linux-rel-nightly-2.1.1635-3065709.run
3. CUDA SDKコードサンプル-cuda-sdk-linux-2.10.1126.1520-3141441.run
それらをディスクのどこかに保存し(それらへのパスにスペースやキリル文字が含まれていないことが望ましい)、3つのパッケージすべてにchmod + xをインストールします。 準備段階が完了しました!
実際にインストール。
まず、ビデオドライバーをインストールする必要があります。 標準として設定されます:
$ sudo -s -H
# /etc/init.d/gdm stop
Ctrl + Alt + F1を押してログインします。 次に:
# sh NVIDIA-Linux-x86-180.06-pkg1.run
NVIDIAサーバーからプリコンパイル済みヘッダーをダウンロードできます。 拒否します。
その後、コアの下でコンパイルするよう提案されます。 同意します。
数秒待っています-そして出来上がりです! ドライバーがインストールされます。
これで、X-Serverを再び起動できます。
# /etc/init.d/gdm start
次に、1つのファイルを少し修正する必要があります。
$ sudo gedit /etc/default/linux-restricted-modules-common
そこにこの行を修正する必要があります
DISABLED_MODULES = "nvidia nvidia_legacy nvidia_new"
保存して再起動します。 Xサーバーが起動しなかった場合は、構成ファイルを単純に復元できます。
$ sudo cp /etc/X11/xorg.conf.backup /etc/X11/xorg.conf
エラーのアクションを確認します。
いいね! 次に、残りの2つのコンポーネントをインストールします。
$ sudo ./cuda-linux-rel-nightly-2.1.1635-3065709.run
$ sudo ./cuda-sdk-linux-2.10.1126.1520-3141441.run
回避するために、パス(最初の場合/ usr / local / cudaおよび2番目の$ HOME / NVIDIA_CUDA_SDK )はデフォルトのままにしておく必要があります。
次に、少し環境変数を掘ります。 それらはUbuntuの/ etc /環境に保存されます。 PATHに追加する必要があります: "/ usr / local / cuda:/ usr / local / cuda / bin"。 そして、それは1つのファイルを編集するために残ります:
$ sudo gedit /etc/ld.so.conf
最後に追加
#NVIDIA CUDA v2.1サポート
/ usr / local / cuda / lib
ldconfigと入力します 。
$ sudo ldconfig
すべて、楽しむことができます! ここで、SDKディレクトリに移動して、サンプルを収集してください。
$ cd ~/NVIDIA_CUDA_SDK
$ make
ところで、 makeコマンドのパラメーターを忘れないでください。 CUDAでコードをコンパイルする場合、次のようになります。
-リリース構成- メイク
-デバッグ構成-make dbg = 1
-emurelease設定-make emu = 1
-emudebug設定-make emu = 1 dbg = 1
コンピューターに互換性のあるビデオカードがない場合は、パラメーターemu = 1を設定することを忘れないでください。
実際、それだけです! これで、すべてが正常に統合された場合(正しくない場合、gccとg ++の正しいバージョンが必要かどうかを再確認してください)、 〜/ NVIDIA_CUDA_SDK / bin / linux / release /ディレクトリに移動して、例をお楽しみください。 個人的には、 fluidsGLが最も好きでした 。
欠陥がある場合-私はそれを修正しようとします。 頑張って
APD :2人の仲間( 3dmとtimyr_lan )から、デフォルトのコンパイラを変更する方法を修正するようにすぐに頼まれました。 修正してくれてありがとう。
次のようにするとより正確です。
エクスポートCC = "gcc-4.1"
export CPP = "cpp-4.1"
export CXX = "g ++-4.1"
〜/ .bashrcに書き込むか、CUDAコードをコンパイルする前にこれらの変数を設定するだけです。
APD2 :オプション番号2、さらに簡単:
$gedit ~/NVIDIA_CUDA_SDK/common/common.mk
#コンパイラー
NVCC:= $(CUDA_INSTALL_PATH)/ bin / nvcc。
CXX:= g ++-4.1
CC:= gcc-4.1
リンク:= g ++-4.1 -fPIC