<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kokutoupan</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kokutoupan"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Kokutoupan"/>
	<updated>2026-05-24T06:51:33Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GPGPU&amp;diff=40923</id>
		<title>GPGPU</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GPGPU&amp;diff=40923"/>
		<updated>2025-10-09T06:34:09Z</updated>

		<summary type="html">&lt;p&gt;Kokutoupan: /* 開発 */  「お」を「の」に&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:開発]]&lt;br /&gt;
[[Category:グラフィックス]]&lt;br /&gt;
[[en:GPGPU]]&lt;br /&gt;
[[ru:GPGPU]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Nvidia}}&lt;br /&gt;
{{Related|ハードウェアビデオアクセラレーション}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
GPGPU は [[Wikipedia:ja:GPGPU|General-purpose computing on graphics processing units; GPUによる汎用計算]] の略です。&lt;br /&gt;
&lt;br /&gt;
== OpenCL ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:OpenCL|OpenCL]] (Open Computing Language) は、非営利団体である Khronos グループによって開発されている、オープンでロイヤルティフリーの並列プログラミングフレームワークです。&lt;br /&gt;
&lt;br /&gt;
OpenCL の仕様書には一般環境として必要なプログラミング言語と、プログラマがこの環境で呼び出せる C API について規定されています。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{pkg|clinfo}} ユーティリティを使うことで OpenCL プラットフォームと存在するデバイス、ICD ローダのプロパティを確認できます。}}&lt;br /&gt;
&lt;br /&gt;
=== ランタイム ===&lt;br /&gt;
&lt;br /&gt;
OpenCL を使用するプログラムを&#039;&#039;&#039;実行&#039;&#039;&#039;するには、互換性のあるハードウェアランタイムをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
==== AMD/ATI ====&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|opencl-mesa}}: rusticl による mesa ドライバ用の OpenCL サポート&lt;br /&gt;
* {{Pkg|rocm-opencl-runtime}}: AMD の ROCm GPU コンピュートスタックの一部。[https://rocm.docs.amd.com/projects/install-on-linux/en/latest/reference/system-requirements.html 僅かな範囲のGPUモデル]を公式にサポートしています (他のカードは非公式に、または部分的なサポートにより動作する可能性があります)。Vega より古いカードをサポートするには、ラインタイム変数 {{ic|1=ROC_ENABLE_PRE_VEGA=1}} を設定する必要があります。これは、ubuntu の amdgpu-install に {{ic|1=opencl=rocr}} を[https://amdgpu-install.readthedocs.io/en/latest/install-script.html#specifying-an-opencl-implementation 指定]したものに似てはいますが、全く異なるものです。このパッケージの rocm バージョンは ubuntu のインストーラバージョンとは異なるからです。&lt;br /&gt;
* {{AUR|opencl-legacy-amdgpu-pro}}: AMD の ubuntu リリースから再パッケージングされたレガシーな Orca OpenCL。ubuntu の amdgpu-install に {{ic|1=opencl=legacy}} を[https://amdgpu-install.readthedocs.io/en/latest/install-script.html#specifying-an-opencl-implementation 指定]することと等価です。&lt;br /&gt;
* {{AUR|opencl-amd}}、{{AUR|opencl-amd-dev}}: AMD の Ubuntu リリースから再パッケージングされた ROCm コンポーネント群。Ubuntu の amdgpu-install で {{ic|1=opencl=rocr,legacy}} を[https://rocm.docs.amd.com/projects/install-on-linux/en/latest/how-to/amdgpu-install.html 指定]することと等価です。&lt;br /&gt;
* {{AUR|amdapp-sdk}}: AMD CPU ランタイム&lt;br /&gt;
&lt;br /&gt;
==== NVIDIA ====&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|opencl-mesa}}: rusticl による mesa ドライバ向けの OpenCL サポート。&lt;br /&gt;
* {{Pkg|opencl-nvidia}}: 公式の [[NVIDIA]] ランタイム&lt;br /&gt;
&lt;br /&gt;
==== Intel ====&lt;br /&gt;
&lt;br /&gt;
* {{pkg|intel-compute-runtime}}: またの名を Neo OpenCL ランタイム。第12世代 (Alder Lake) 以降の Intel HD Graphics GPU 用のオープンソース実装です。&lt;br /&gt;
* {{AUR|intel-compute-runtime-legacy}}: 第11世代 (Rocket Lake) 以前のみ、上と同じ。&lt;br /&gt;
* {{Pkg|opencl-mesa}}: rusticl による mesa ドライバ用の OpenCL サポート&lt;br /&gt;
* {{AUR|beignet}}: 第7世代 (Ivy Bridge) 以降の Intel HD Graphics GPU 用のオープンソース実装。これは Intel によって非推奨となっており、NEO OpenCL ドライバが後継です。ただし、古いハードウェアプラットフォーム (例: Ivy Bridge、Haswell) においては推奨されるソリューションです。&lt;br /&gt;
* {{AUR|intel-opencl}}: 第7世代 (Ivy Bridge) 以降の Intel HD Graphics GPU のプロプライエタリな実装。これは Intel によって非推奨となっており、NEO OpenCL ドライバが後継です。ただし、古いハードウェアプラットフォーム (例: Ivy Bridge、Haswell) においては推奨されるソリューションです。&lt;br /&gt;
* {{AUR|intel-opencl-runtime}}: Intel Core 及び Xeon プロセッサ用の実装。非 Intel な CPU もサポートしています。&lt;br /&gt;
&lt;br /&gt;
==== その他 ====&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|pocl}}: LLVM ベースの OpenCL 実装 (ハードウェアとは独立)&lt;br /&gt;
&lt;br /&gt;
Vulkan ランタイム上で OpenCL アプリケーションを実行するためのコンパイラとトランスレータがあります。&lt;br /&gt;
&lt;br /&gt;
* {{AUR|clspv-git}}: Clspv は OpenCL C のサブセットから Vulkan コンピュートシェーダに変換するためのプロトタイプコンパイラです。&lt;br /&gt;
* {{AUR|clvk-git}}: clvk は clspv をコンパイラとして使用する、Vulkan 上で動作する OpenCL 3.0 のプロトタイプ実装です。&lt;br /&gt;
* {{AUR|xrt-bin}}: FPGA [https://github.com/Xilinx/XRT xrt] のための Xilinx Run Time&lt;br /&gt;
* [https://github.com/intel/fpga-runtime-for-opencl fpga-runtime-for-opencl]: FPGA ランタイムs&lt;br /&gt;
&lt;br /&gt;
=== 32ビットランタイム ===&lt;br /&gt;
&lt;br /&gt;
OpenCL を使う32ビットプログラムを&#039;&#039;&#039;実行&#039;&#039;&#039;するには、互換性のあるハードウェア32ビットランタイムをインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{pkg|clinfo}} ユーティリティは64ビットの OpenCL プラットフォームや存在するデバイス、ICD ローダプロパティをリストアップするためだけに使用できます。&lt;br /&gt;
32ビットにおいては、clinfo を 32ビット向けにコンパイルするか、archlinux32 プロジェクトの32ビット版 [https://www.archlinux32.org/packages/i686/extra/clinfo/ clinfo] を使う必要があります。}}&lt;br /&gt;
&lt;br /&gt;
==== AMD/ATI ====&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|lib32-opencl-mesa}}: AMD/ATI Radeon mesa ドライバの OpenCL サポート (32 ビット)&lt;br /&gt;
&lt;br /&gt;
==== NVIDIA ====&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|lib32-opencl-nvidia}}: NVIDIA 用の OpenCL 実装 (32ビット)&lt;br /&gt;
&lt;br /&gt;
=== ICD ローダー (libOpenCL.so) ===&lt;br /&gt;
&lt;br /&gt;
OpenCL ICD ローダーはプラットフォームに依存しないライブラリで、OpenCL API 経由で特定のデバイスのドライバをロードするために使われます。&lt;br /&gt;
ほとんどの OpenCL ベンダーはそれぞれ独自の OpenCL ICD ローダーを提供しており、他のベンダーの OpenCL 実装でも問題なく動作するはずです。&lt;br /&gt;
残念ながら、大抵のベンダーは最新の ICD ローダーを提供していません。そのため、Arch Linux ではこのライブラリを別のプロジェクト ({{Pkg|ocl-icd}}) から提供することで最新の OpenCL API の実装が機能するようにしています。&lt;br /&gt;
&lt;br /&gt;
他の ICD ローダーライブラリは各メーカーの SDK の一部としてインストールされます。確実に {{Pkg|ocl-icd}} パッケージに含まれている ICD ローダーを使用したい場合、{{ic|/etc/ld.so.conf.d}} にファイルを作成して {{ic|/usr/lib}} を動的プログラムローダーの検索ディレクトリに追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/ld.so.conf.d/00-usrlib.conf|&lt;br /&gt;
/usr/lib&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
全ての SDK は {{ic|ld.so.conf.d}} ファイルでランタイムのライブラリディレクトリを検索パスに追加するため上記の設定をする必要があります。&lt;br /&gt;
&lt;br /&gt;
様々な OpenCL ICD を含む利用可能なパッケージは:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|ocl-icd}}: 推奨、ほぼ最新&lt;br /&gt;
* {{AUR|intel-opencl}}: Intel により提供。OpenCL 2.0 を提供します。これは非推奨となっており、後継は {{pkg|intel-compute-runtime}} です。&lt;br /&gt;
&lt;br /&gt;
{{Note|ICD ローダーのベンダーの名前が出るのはローダーを識別する必要があるときだけです。他の場合、ベンダーの名前は関係ありません。ICD ローダーはベンダーに依存しないため (正しく実装されてさえいれば) 相互に交換して使うことができます。}}&lt;br /&gt;
&lt;br /&gt;
=== 開発 ===&lt;br /&gt;
&lt;br /&gt;
OpenCL を使用して&#039;&#039;&#039;開発&#039;&#039;&#039;するには、最低でも以下のパッケージが必要です:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|ocl-icd}}: OpenCL ICD ローダ実装。最新の OpenCL 仕様に沿っています。&lt;br /&gt;
* {{Pkg|opencl-headers}}: OpenCL C/C++ API ヘッダーファイル。&lt;br /&gt;
&lt;br /&gt;
ベンダーの SDK には様々なツールやサポートライブラリが含まれています:&lt;br /&gt;
&lt;br /&gt;
* {{AUR|intel-opencl-sdk}}: [https://software.intel.com/en-us/articles/opencl-sdk/ Intel OpenCL SDK] (古いバージョン。新しい OpenCL SDK は INDE と Intel Media Server Studio に含まれています)&lt;br /&gt;
* {{AUR|amdapp-sdk}}: このパッケージにより {{ic|/opt/AMDAPP}} と SDK ファイルの一部がインストールされ、一定数のコードサンプル ({{ic|/opt/AMDAPP/SDK/samples/}}) も含まれています。また、システム内に存在する OpenCL プラットフォームとデバイスをリストアップし、それらに関する詳細な情報を表示する {{ic|clinfo}} ユーティリティも提供します。SDK 自体に CPU OpenCL ドライバが含まれているため、OpenCL を CPU デバイス上で実行するための追加のドライバは必要ありません (CPU のベンダを問わず)。&lt;br /&gt;
* {{Pkg|cuda}}: OpenCL 3.0 のサポートを含む Nvidia の GPU SDK。&lt;br /&gt;
&lt;br /&gt;
=== 実装 ===&lt;br /&gt;
&lt;br /&gt;
あなたのシステムで現在アクティブになっている OpenCL 実装を確認するには、以下のコマンドを使用してください:&lt;br /&gt;
&lt;br /&gt;
 $ ls /etc/OpenCL/vendors&lt;br /&gt;
&lt;br /&gt;
システムで利用可能な OpenCL プラットフォームとデバイスの利用可能な (既知の) 全プロパティを調べるには、{{pkg|clinfo}} を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
{{AUR|ocl-icd-choose}} を使えば、アプリケーションに参照させる実装を指定することができます。例えば:&lt;br /&gt;
&lt;br /&gt;
 $ ocl-icd-choose amdocl64.icd:mesa.icd davinci-resolve-checker&lt;br /&gt;
&lt;br /&gt;
==== Rusticl ====&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|マニュアルに書かれてあることと異なり、OCL_ICD_VENDORS は単一の icd ファイルを処理することができないようです。https://github.com/OCL-dev/ocl-icd/issues/7#issuecomment-1522941979 を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
[https://docs.mesa3d.org/rusticl.html Rusticl] は、Rust で記述された新しい OpenCL 実装で、{{Pkg|opencl-mesa}} によって提供されています。環境変数 {{ic|1=RUSTICL_ENABLE=&#039;&#039;driver&#039;&#039;}} ({{ic|&#039;&#039;driver&#039;&#039;}} は Gallium ドライバ。{{ic|radeonsi}} や {{ic|iris}} など) を設定することで有効化できます。&lt;br /&gt;
&lt;br /&gt;
任意で、OpenCL アプリケーションが Rusticl を検出しない場合、以下の環境変数を使用してください:&lt;br /&gt;
&lt;br /&gt;
 OCL_ICD_VENDORS=/etc/OpenCL/vendors/rusticl.icd&lt;br /&gt;
&lt;br /&gt;
==== 言語バインディング ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;JavaScript/HTML5&#039;&#039;&#039;: [https://www.khronos.org/webcl/ WebCL]&lt;br /&gt;
* [[Python]]: {{pkg|python-pyopencl}}&lt;br /&gt;
* [[D]]: [https://github.com/Trass3r/cl4d cl4d] や [https://github.com/libmir/dcompute DCompute]&lt;br /&gt;
* [[Java]]: [https://git.qoto.org/aparapi/aparapi Aparapi] や [https://jogamp.org/jocl/www/ JOCL] ([https://jogamp.org/ JogAmp] の一部)&lt;br /&gt;
* [[Mono|Mono/.NET]]: [https://sourceforge.net/projects/opentk/ Open Toolkit]&lt;br /&gt;
* [[Go]]: [https://github.com/samuel/go-opencl Go のための OpenCL バインディング]&lt;br /&gt;
* &#039;&#039;&#039;Racket&#039;&#039;&#039;: Racket にはネイティブなインファーフェイス [http://planet.racket-lang.org/display.ss?owner=jaymccarthy&amp;amp;package=opencl.plt on PLaneT] が含まれています。roco を通してインストールできます。&lt;br /&gt;
* [[Rust]]: [https://github.com/cogciprocate/ocl ocl]&lt;br /&gt;
* [[Julia]]: [https://github.com/JuliaGPU/OpenCL.jl OpenCL.jl]&lt;br /&gt;
&lt;br /&gt;
== SYCL ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:SYCL]] によると:&lt;br /&gt;
&lt;br /&gt;
: SYCL は、様々なハードウェアアクセラレータにおいてプログラミングの生産性を向上させるための高レベルなプログラミングモデルです。純粋な C++17 をベースにした、単一ソースな組み込みドメイン固有言語 (eDSL) です。&lt;br /&gt;
&lt;br /&gt;
: SYCL は、ロイヤリティフリーでクロスプラットフォームな抽象レイヤーです。完全に標準の C++ を使って様々な種類のプロセッサ向けに &amp;quot;単一ソース&amp;quot; なスタイルでコードを記述することのできる OpenCL からインスパイアされたコンセプト、移植性、そして効率性をベースに構築されています。SYCL により、C++ のテンプレート関数をホストとデバイスの両方のコードに含めて、ハードウェアアクセラレータを使用する複雑なアルゴリズムを構築し、それらの関数をソースコード全体で異なる種類のデータで再利用できる、単一ソース開発が可能になります。&lt;br /&gt;
&lt;br /&gt;
: SYCL 標準は、OpenCL ワーキンググループの高レベルプログラミングモデルサブグループとして始まり、元々は OpenCL と SPIR と合わせて使用するために開発されていましたが、2019年9月20日から SYCL は OpenCL ワーキンググループから独立した Khronos Group ワーキンググループとなり、SYCL 2020 から SYCL は他のシステムもターゲットとすることが可能なより一般的なヘテロジニアスなフレームワークに一般化されました。これは、既存のネイティブなライブラリを使用してプログラミングの労力を削減しながら最大のパフォーマンスを得るというような、任意のアクセラレーション API をターゲットとしつつターゲットの API との完全な相互運用性を可能とする汎用バックエンドというコンセプトにより可能になりました。例えば、Open SYCL 実装は AMD のクロスベンダー HIP を経由して ROCm と CUDA をターゲットとしています。&lt;br /&gt;
&lt;br /&gt;
=== 実装 ===&lt;br /&gt;
&lt;br /&gt;
* {{AUR|computecpp}}: Codeplay による SYCL 1.2.1 のプロプライエタリ実装。SPIR、SPIR-V、そして実験的な PTX (NVIDIA) をデバイスターゲットとして対象とすることができます (2023年9月1日でサポート終了、Intel llvm 実装にマージされる予定です [https://codeplay.com/portal/news/2023/07/07/the-future-of-computecpp 情報])。&lt;br /&gt;
* {{AUR|trisycl-git}}: 主に Xilinx によって開発されているオープンソースの実装。&lt;br /&gt;
* {{AUR|hipsycl-cuda-git}} と {{AUR|hipsycl-rocm-git}}{{Broken package link|package not found}}: [https://github.com/AdaptiveCpp/AdaptiveCpp AdaptiveCpp]は、AMDのhipSYCLから改名された、すべてのベンダーのCPUとGPU向けのSYCLとC++標準並列処理の実装です。&lt;br /&gt;
* {{Pkg|intel-oneapi-dpcpp-cpp}}: Intel の Data Parallel C++: SYCL の oneAPI 実装。&lt;br /&gt;
&lt;br /&gt;
=== SPIR サポートの確認 ===&lt;br /&gt;
&lt;br /&gt;
大抵の SYCL 実装はアクセラレータのコードを [[Wikipedia:Standard Portable Intermediate Representation|SPIR]] あるいは [[Wikipedia:Standard Portable Intermediate Representation|SPIR-V]] にコンパイルすることができます。どちらも Khronos によって設計された中間言語で、OpenCL ドライバーに渡すことができます。SPIR や SPIR-V に対応しているかどうか確認するには {{pkg|clinfo}} を使います:&lt;br /&gt;
&lt;br /&gt;
{{hc|head=$ clinfo {{!}} grep -i spir|output=&lt;br /&gt;
Platform Extensions                             cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64 cl_khr_image2d_from_buffer cl_intel_vec_len_hint &lt;br /&gt;
  IL version                                    SPIR-V_1.0&lt;br /&gt;
  SPIR versions                                 1.2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ComputeCpp には、関連するシステム情報を要約するツールも同梱されています:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ computecpp_info|&lt;br /&gt;
Device 0:&lt;br /&gt;
&lt;br /&gt;
  Device is supported                     : UNTESTED - Untested OS&lt;br /&gt;
  CL_DEVICE_NAME                          : Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz&lt;br /&gt;
  CL_DEVICE_VENDOR                        : Intel(R) Corporation&lt;br /&gt;
  CL_DRIVER_VERSION                       : 18.1.0.0920&lt;br /&gt;
  CL_DEVICE_TYPE                          : CL_DEVICE_TYPE_CPU &lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Out of date|このドライバは AMD {{AUR|opencl-legacy-amdgpu-pro}} や {{AUR|opencl-amd}} 用か?}}&lt;br /&gt;
&lt;br /&gt;
SPIR や SPIR-V をサポートしている既知のドライバーとして {{pkg|intel-compute-runtime}}, {{AUR|intel-opencl-runtime}}, {{Pkg|pocl}}, {{AUR|amdgpu-pro-opencl}}{{Broken package link|パッケージが存在しません}} などが存在します。&lt;br /&gt;
&lt;br /&gt;
=== 開発 ===&lt;br /&gt;
&lt;br /&gt;
SYCL は、機能する C++11 環境がセットアップされている必要があります。いくつかのオープンソースライブラリが存在します:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/codeplaysoftware/computecpp-sdk/ ComputeCpp SDK]: コード例集、ComputeCpp 用の {{Pkg|cmake}} 統合。&lt;br /&gt;
* [https://github.com/codeplaysoftware/SYCL-DNN SYCL-DNN]: ニューラルネットワークパフォーマンスプリミティブ&lt;br /&gt;
* [https://github.com/codeplaysoftware/SYCL-BLAS SYCL-BLAS]: 線形代数パフォーマンスプリミティブ&lt;br /&gt;
* [https://github.com/codeplaysoftware/visioncpp VisionCpp]: コンピュータビジョンライブラリ&lt;br /&gt;
* [https://github.com/KhronosGroup/SyclParallelSTL SYCL Parallel STL]: C++17 の並列アルゴリズムの GPU 実装&lt;br /&gt;
&lt;br /&gt;
== CUDA ==&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:CUDA|CUDA]] (Compute Unified Device Architecture) は、[[NVIDIA]] のプロプライエタリな、クローズドソースの並列計算アーキテクチャ及びフレームワークです。NVIDIA GPU を必要とします。CUDA は複数のコンポーネントから構成されます:&lt;br /&gt;
&lt;br /&gt;
* 必須:&lt;br /&gt;
** プロプライエタリな NVIDIA カーネルモジュール&lt;br /&gt;
** CUDA &amp;quot;ドライバ&amp;quot; と &amp;quot;ランタイム&amp;quot; ライブラリ&lt;br /&gt;
* 任意:&lt;br /&gt;
** 追加のライブラリ: CUBLAS、CUFFT、CUSPARSE など&lt;br /&gt;
** CUDA ツールキット。{{ic|nvcc}} コンパイラが含まれています。&lt;br /&gt;
** CUDA SDK。CUDA と OpenCL プログラムの多数のサンプルや例が含まれています。&lt;br /&gt;
&lt;br /&gt;
カーネルモジュールと CUDA &amp;quot;ドライバ&amp;quot; ライブラリは {{Pkg|nvidia}} と {{Pkg|opencl-nvidia}} に入っています。&amp;quot;ランタイム&amp;quot; ライブラリと CUDA ツールキットの残りは {{Pkg|cuda}} パッケージでインストール可能です。{{ic|cuda-gdb}} を使うには {{aur|ncurses5-compat-libs}} のインストールが必要です。{{Bug|46598}} を参照。&lt;br /&gt;
&lt;br /&gt;
=== 開発 ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|cuda}} パッケージは、すべてのコンポーネントを {{ic|/opt/cuda}} ディレクトリにインストールします。スクリプト {{ic|/etc/profile.d/cuda.sh}} によって、関連する環境変数が設定され、CUDA をサポートするビルドシステムが CUDA を見つけられるようになります。&lt;br /&gt;
&lt;br /&gt;
インストールが成功したかどうかや、CUDA が動いているかどうかを確かめるには、[https://github.com/nvidia/cuda-samples CUDA samples] をコンパイルすることで可能です。インストールをチェックする方法の一つとして、{{ic|deviceQuery}} サンプルを実行するというものがあります。&lt;br /&gt;
&lt;br /&gt;
=== 言語バインディング ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Fortran&#039;&#039;&#039;: [https://www.pgroup.com/resources/cudafortran.htm PGI CUDA Fortran Compiler]&lt;br /&gt;
* [[Haskell]]: [https://hackage.haskell.org/package/accelerate アクセラレートパッケージ]には利用可能な CUDA バックエンドがあります。&lt;br /&gt;
* [[Java]]: [http://www.jcuda.org/jcuda/JCuda.html JCuda]&lt;br /&gt;
* [[Mathematica]]: [https://reference.wolfram.com/mathematica/CUDALink/tutorial/Overview.html CUDAlink]&lt;br /&gt;
* [[Mono|Mono/.NET]]: [https://github.com/rapiddev/CUDAfy.NET CUDAfy.NET]、[https://github.com/kunzmi/managedCuda managedCuda]&lt;br /&gt;
* [[Perl]]: [https://metacpan.org/pod/KappaCUDA KappaCUDA]、[https://github.com/run4flat/perl-CUDA-Minimal CUDA-Minimal]&lt;br /&gt;
* [[Python]]: {{pkg|python-pycuda}}&lt;br /&gt;
* [[Ruby]]: [https://github.com/SciRuby/rbcuda rbcuda]&lt;br /&gt;
* [[Rust]]: [https://github.com/Rust-GPU/Rust-CUDA Rust-CUDA]。メンテナンスされていません。: [https://github.com/rust-cuda/cuda-sys cuda-sys] (bindings)、[https://github.com/bheisler/rustacuda RustaCUDA] (高レベルなラッパ)。&lt;br /&gt;
&lt;br /&gt;
== ROCm ==&lt;br /&gt;
&lt;br /&gt;
[https://rocm.docs.amd.com/en/latest/ ROCm] (Radeon Open Compute) は、AMD のオープンソースな並列計算アーキテクチャ及びフレームワークです。これは AMD GPU を必要としますが、一部の ROCm ツールはハードウェアに依存しません。詳細は [https://github.com/rocm-arch/rocm-arch Arch Linux リポジトリ用の ROCm] を見てください。&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|rocm-hip-sdk}}: HIP と AMD プラットフォーム用のライブラリを使用するアプリケーションの開発。&lt;br /&gt;
* {{Pkg|rocm-opencl-sdk}}: AMD プラットフォーム用の OpenCL ベースアプリケーションの開発。&lt;br /&gt;
&lt;br /&gt;
=== HIP ===&lt;br /&gt;
&lt;br /&gt;
[https://rocm.docs.amd.com/projects/HIP/en/latest/ Heterogeneous Interface for Portability (HIP)] は、GPU ハードウェア上で高パフォーマンスなカーネルを設計するための、AMD の専用 GPU プログラミング環境です。HIP は、異なるプラットフォーム上でポータブルなアプリケーションを作成できるようにする C++ ランタイム API 及びプログラミング言語です。&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|rocm-hip-runtime}}: ベースランタイム。AMD プラットフォーム上で HIP アプリケーションを実行するためのパッケージ群。&lt;br /&gt;
* {{Pkg|hip-runtime-amd}}: ROCm における AMDGPU 用の Heterogeneous Interface。Polaris アーキテクチャ (RX 500 シリーズ) から AMD の最新 RDNA 2 アーキテクチャ (RX 6000 シリーズ) までの GPU をサポートします。&lt;br /&gt;
* {{Pkg|miopen-hip}}: HIP バックエンドを用いる、AMD のオープンソースのディープラーニングライブラリ。&lt;br /&gt;
* {{Pkg|hip-runtime-nvidia}}: ROCm における NVIDIA GPU 用 Heterogeneous Interface。&lt;br /&gt;
&lt;br /&gt;
{{Tip|HIP の [[Blender]] における使用に関するより多くの情報が利用可能です。}}&lt;br /&gt;
&lt;br /&gt;
=== OpenMP ===&lt;br /&gt;
&lt;br /&gt;
{{AUR|openmp-extras}} パッケージは [https://github.com/ROCm-Developer-Tools/aomp AOMP] (AMD GPU における OpenMP API のサポートを追加した、オープンソースの Clang/LLVM ベースコンパイラ) を提供します。&lt;br /&gt;
&lt;br /&gt;
=== OpenCL ===&lt;br /&gt;
&lt;br /&gt;
{{Pkg|rocm-opencl-runtime}} パッケージは、OpenCL ランタイムを提供する ROCm フレームワークの一部です。&lt;br /&gt;
&lt;br /&gt;
==== OpenCL image support ====&lt;br /&gt;
&lt;br /&gt;
最新の ROCm バージョンには、Darktable などの GPGPU 支援のソフトウェアによって使用される OpenCL Image Support が含まれています。必要なのは [[AMDGPU]] オープンソースグラフィックドライバと ROCm だけです。AMDGPU PRO は必要ありません。&lt;br /&gt;
&lt;br /&gt;
{{hc|head=$ /opt/rocm/bin/clinfo {{!}} grep -i &amp;quot;image support&amp;quot;|output=&lt;br /&gt;
  Image support                                   Yes&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== トラブルシューティング ===&lt;br /&gt;
&lt;br /&gt;
まず、GPU が {{ic|/opt/rocm/bin/rocminfo}} ディレクトリに現れるか確認してください。現れない場合、ROCm はあなたの GPU をサポートしていないか、あなたの GPU のサポート無しでビルドされている可能性があります。&lt;br /&gt;
&lt;br /&gt;
==== PyTorch ====&lt;br /&gt;
&lt;br /&gt;
ROCm で PyTorch を使うには、{{Pkg|python-pytorch-rocm}} をインストールしてください。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ python -c &#039;import torch; print(torch.cuda.is_available())&#039;|True}}&lt;br /&gt;
&lt;br /&gt;
ROCm はまるで CUDA であるかのように振る舞うので、上記のコマンドは {{ic|True}} を返すはずです。{{ic|True}} を返さない場合、あなたの GPU のサポート無しで PyTorch がコンパイルされているか、依存関係の衝突が発生している可能性があります。{{ic|ldd /usr/lib/libtorch.so}} を実行してみることで、どちらの問題が発生しているか確認することができます - 欠落している {{ic|.so}} ファイルが無く、かつ同じ {{ic|.so}} ファイルに複数のバージョンが存在しない必要があります。&lt;br /&gt;
&lt;br /&gt;
== GPGPU のアクセラレーションがあるソフトウェア ==&lt;br /&gt;
&lt;br /&gt;
{{Expansion|もっとたくさんのアプリケーションがGPGPUをサポートしている可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
* [[Bitcoin]]&lt;br /&gt;
* [[Blender]] – Nvidia GPU 向けの CUDA のサポートと AMD GPU 向けの OpenCL のサポート。詳細は[https://docs.blender.org/manual/en/latest/render/cycles/gpu_rendering.html こちら]。&lt;br /&gt;
* [[BOINC]]&lt;br /&gt;
* [[FFmpeg]] – 詳細は[https://trac.ffmpeg.org/wiki/HWAccelIntro#OpenCL こちら]。&lt;br /&gt;
* [[Folding@home]]&lt;br /&gt;
* [[GIMP]] – 実験段階 – 詳細は[https://www.h-online.com/open/news/item/GIMP-2-8-RC-1-arrives-with-GPU-acceleration-1518417.html こちら]。&lt;br /&gt;
* [[HandBrake]]&lt;br /&gt;
* [[Hashcat]]&lt;br /&gt;
* [[LibreOffice]] Calc – 詳細は[https://help.libreoffice.org/Calc/OpenCL_Options こちら]。&lt;br /&gt;
* [[mpv]] - [[mpv#ハードウェアビデオアクセラレーション]] を参照。&lt;br /&gt;
* {{Pkg|clinfo}} – システム上で利用可能な OpenCL プラットフォーム及びデバイスの可能な (既知の) 全プロパティを検出。&lt;br /&gt;
* {{AUR|cuda_memtest}} – GPU メモリテスト。その名前とは裏腹に、CUDA と OpenCL の両方をサポートしています。&lt;br /&gt;
* {{Pkg|darktable}} – OpenCL 機能を使うには GPU に最低でも 1GB のメモリが搭載されていて &#039;&#039;Image support&#039;&#039; が必要です (clinfo コマンドの出力で確認できます)。&lt;br /&gt;
* [[DaVinci Resolve]] - ノンリニア動画エディタ。OpenCL と CUDA の両方を使えます。&lt;br /&gt;
* {{Pkg|imagemagick}}&lt;br /&gt;
* {{AUR|lc0}} - ニューラルネットワークの検索に使います (tensorflow、OpenCL、CUDA、そして openblas に対応)。&lt;br /&gt;
* {{Pkg|opencv}}&lt;br /&gt;
* {{AUR|pyrit}}&lt;br /&gt;
* {{Pkg|python-pytorch-cuda}} - CUDA バックエンドの PyTorch&lt;br /&gt;
* {{Pkg|tensorflow-cuda}} - TensorFlow の CUDA への移植&lt;br /&gt;
* {{AUR|tensorflow-computecpp}} - TensorFlow の SYCL への移植&lt;br /&gt;
* {{Pkg|xmrig}} - High Perf CryptoNote CPU と GPU (OpenCL, CUDA) マイナー&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.khronos.org/opencl/ OpenCL 公式ホームページ]&lt;br /&gt;
* [https://www.khronos.org/sycl/ SYCL 公式ホームページ]&lt;br /&gt;
* [https://www.khronos.org/spir/ SPIR 公式ホームページ]&lt;br /&gt;
* [https://developer.nvidia.com/cuda-toolkit CUDA Toolkit ホームページ]&lt;br /&gt;
* [https://software.intel.com/en-us/intel-opencl Intel SDK for OpenCL Applications ホームページ]&lt;br /&gt;
* [https://developer.codeplay.com/home/ ComputeCpp 公式ホームページ]&lt;br /&gt;
* [https://gitlab.com/illwieckz/i-love-compute 異なる GPU 用に利用可能な OpenCL フレームワークのリスト]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|GPGPU|2025-06-05|837001}}&lt;/div&gt;</summary>
		<author><name>Kokutoupan</name></author>
	</entry>
</feed>