<?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=Akku</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=Akku"/>
	<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/Akku"/>
	<updated>2026-05-25T10:28:29Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GPGPU&amp;diff=40460</id>
		<title>GPGPU</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GPGPU&amp;diff=40460"/>
		<updated>2025-06-27T05:03:22Z</updated>

		<summary type="html">&lt;p&gt;Akku: 同期&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>Akku</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=AMDGPU&amp;diff=40459</id>
		<title>AMDGPU</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=AMDGPU&amp;diff=40459"/>
		<updated>2025-06-27T04:58:15Z</updated>

		<summary type="html">&lt;p&gt;Akku: 同期&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:グラフィックス]]&lt;br /&gt;
[[Category:X サーバー]]&lt;br /&gt;
[[de:AMDGPU]]&lt;br /&gt;
[[en:AMDGPU]]&lt;br /&gt;
[[zh-hans:AMDGPU]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ATI}}&lt;br /&gt;
{{Related|Xorg}}&lt;br /&gt;
{{Related|Vulkan}}&lt;br /&gt;
{{Related|AMDGPU PRO}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:AMDGPU|AMDGPU]] は [[wikipedia:ja:Graphics_Core_Next|Graphics Core Next]] ファミリの AMD Radeon グラフィックカード向けのオープンソースグラフィックドライバです。&lt;br /&gt;
&lt;br /&gt;
== 適切なドライバーの選択 ==&lt;br /&gt;
&lt;br /&gt;
お持ちのカードに応じて、[[Xorg#AMD]] で適切なドライバーを見つけてください。このドライバは [https://www.x.org/wiki/RadeonFeature/ Southern Islands] (GCN 1。2012年リリース。) 及びそれ以降のカードをサポートしています。AMD には GCN より前の GPU をサポートする計画はありません。&lt;br /&gt;
&lt;br /&gt;
サポートされない GPU については、オープンソースの [[ATI]] ドライバを使用できます。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|mesa}} パッケージを[[インストール]]してください。これには、3D アクセラレーションのための DRI ドライバーと、[[#ビデオアクセラレーション|動画デコードのアクセラレーション]]のための VA-API/VDPAU ドライバの両方が含まれています。&lt;br /&gt;
&lt;br /&gt;
* 32ビットアプリケーションのサポートに関しては、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} パッケージもインストールしてください。&lt;br /&gt;
* ([[Xorg]] での 2D アクセラレーションを提供する) DDX ドライバに関しては、{{Pkg|xf86-video-amdgpu}} パッケージをインストールすることで利用可能です。デフォルトの modesetting ドライバが存在するため、このパッケージは必要ありません。&lt;br /&gt;
* [[Vulkan]] のサポートに関しては: &lt;br /&gt;
** &#039;&#039;&#039;まず {{Pkg|vulkan-radeon}} のみ&#039;&#039;&#039;でテストしてください: このパッケージは、([[Pacman#仮想パッケージ|アルファベット順における位置]]により) &#039;&#039;vulkan-driver&#039;&#039; の1番目のプロバイダではありませんが、{{Pkg|amdvlk}} に関して繰り返し[[Vulkan#AMDGPU - DirectX Vulkan ゲームでクラッシュする|報告されている]]一部の問題を回避できます。&lt;br /&gt;
** {{Pkg|amdvlk}} パッケージがインストールされている場合、このパッケージは自身をデフォルトの Vulkan ドライバとして設定します。もし両方のドライバをインストールしておく必要がある場合は (例: {{Pkg|vulkan-radeon}} で [[Vulkan#AMDGPU - DirectX Vulkan ゲームのプレイ中にがハングする|問題]]が起こる場合)、[[Vulkan#環境変数で選択する]] を見てください。&lt;br /&gt;
** 任意で、32 ビットアプリケーションサポートのために、インストールされているネイティブなパッケージに合わせて {{Pkg|lib32-vulkan-radeon}} か {{Pkg|lib32-amdvlk}} パッケージをインストールしてください。&lt;br /&gt;
&lt;br /&gt;
=== 試験的 ===&lt;br /&gt;
&lt;br /&gt;
一部のユーザーにとっては、mesa の上流の試験的ビルドを使用する価値があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
{{AUR|mesa-git}} パッケージをインストールしてください。これは 3D アクセラレーション用の DRI ドライバーを提供します。&lt;br /&gt;
&lt;br /&gt;
* 32 ビットアプリケーションのサポートに関しては、&#039;&#039;mesa-git&#039;&#039; リポジトリ、または [[AUR]] から {{AUR|lib32-mesa-git}} もインストールしてください。&lt;br /&gt;
* ([[Xorg]] で 2D アクセラレーションを提供する) DDX ドライバに関しては、{{AUR|xf86-video-amdgpu-git}} パッケージをインストールしてください。&lt;br /&gt;
* &#039;&#039;mesa-git&#039;&#039; リポジトリを使用する [[Vulkan]] サポートに関しては、&#039;&#039;vulkan-radeon-git&#039;&#039; パッケージをインストールしてください。任意で、32 ビットアプリケーションをサポートするために &#039;&#039;lib32-vulkan-radeon-git&#039;&#039; パッケージもインストールしてください。AUR から {{AUR|mesa-git}} をビルドする場合、これは必要ないはずです。&lt;br /&gt;
&lt;br /&gt;
{{Tip|{{AUR|mesa-git}} パッケージのコンパイルを行いたくない場合は、[[非公式ユーザーリポジトリ#mesa-git|mesa-git]] 非公式リポジトリを使用できます。}}&lt;br /&gt;
&lt;br /&gt;
=== Southern Islands (SI) と Sea Islands (CIK) のサポートを有効化 ===&lt;br /&gt;
&lt;br /&gt;
[[カーネル#公式サポートカーネル|公式サポートカーネル]]では、Southern Islands (GCN 1。2012年リリース。) 及び Sea Islands (GCN 2。2013年リリース。) のカードの AMDGPU サポートが有効化されています。{{ic|amdgpu}} カーネルドライバは [[ATI|radeon]] ドライバより前にロードされる必要があります。どのカーネルドライバがロードされているかは {{ic|lspci -k}} で確認できます。以下のように出力されるはずです:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lspci -k -d ::03xx|&lt;br /&gt;
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM]&lt;br /&gt;
	Subsystem: Gigabyte Technology Co., Ltd Device 226c&lt;br /&gt;
	Kernel driver in use: amdgpu&lt;br /&gt;
	Kernel modules: radeon, amdgpu&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|amdgpu}} ドライバが使用されていない場合、次のセクションの指示に従ってください。&lt;br /&gt;
&lt;br /&gt;
==== amdgpu ドライバをロード ====&lt;br /&gt;
&lt;br /&gt;
{{ic|amdgpu}} モジュールと {{ic|radeon}} モジュールの両方の[[モジュールパラメータ]]は {{ic|1=cik_support=}} と {{ic|1=si_support=}} です。&lt;br /&gt;
&lt;br /&gt;
これらは、カーネルパラメータまたは &#039;&#039;modprobe&#039;&#039; 設定ファイルで設定する必要があり、カードの GCN バージョンによって異なります。&lt;br /&gt;
&lt;br /&gt;
どのカーネルカードを使用しているか不確かな場合は、両方のパラメータを使うことができます。&lt;br /&gt;
&lt;br /&gt;
{{Tip|[[dmesg]] は、使用すべき正しい方のカーネルパラメータを示してくれる場合があります: {{ic|1=[..] amdgpu 0000:01:00.0: Use radeon.cik_support=0 amdgpu.cik_support=1 to override}}}}&lt;br /&gt;
&lt;br /&gt;
===== カーネルコマンドラインでモジュールパラメータを設定 =====&lt;br /&gt;
&lt;br /&gt;
次のいずれかの[[カーネルパラメータ]]を設定してください:&lt;br /&gt;
&lt;br /&gt;
* Southern Islands (SI): {{ic|1=radeon.si_support=0 amdgpu.si_support=1}}&lt;br /&gt;
* Sea Islands (CIK): {{ic|1=radeon.cik_support=0 amdgpu.cik_support=1}}&lt;br /&gt;
&lt;br /&gt;
さらに、統合 Sea Island (GCN 1.1) カードと AMD A10 APU を使用する場合、正しくブートさせるには Radeon Dynamic Power Management を無効化しておく必要がある場合があります。この機能には、グラフィックコアのクロックを動的に調整することで、APU の温度を下げ、静音性を高める目的があります。しかし、この機能のせいで再起動の無限ループに陥ることがあります。無効化するには、上記の手順に従い、{{ic|1=radeon.dpm=0}} をブートオプションに追加してください。&lt;br /&gt;
&lt;br /&gt;
==== 正しいモジュール順序を指定 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|amdgpu}} が [[Mkinitcpio#MODULES]] 配列の1番目のモジュールとして設定されていることを確認してください。例えば、{{ic|1=MODULES=(amdgpu radeon)}}。&lt;br /&gt;
&lt;br /&gt;
===== カーネルモジュールパラメータを設定 =====&lt;br /&gt;
&lt;br /&gt;
Southern Islands (SI) の場合は {{ic|1=si_support=1}} [[カーネルモジュールパラメータ]]を、Sea Islands (CIK) の場合は {{ic|1=cik_support=1}} を使用してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/modprobe.d/amdgpu.conf|2=&lt;br /&gt;
options amdgpu si_support=1&lt;br /&gt;
options amdgpu cik_support=1&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/modprobe.d/radeon.conf|2=&lt;br /&gt;
options radeon si_support=0&lt;br /&gt;
options radeon cik_support=0&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|modconf}} が {{ic|/etc/mkinitcpio.conf}} の {{ic|HOOKS}} 配列にあることを確認し、[[Initramfs を再生成する|initramfs を再生成]]してください。&lt;br /&gt;
&lt;br /&gt;
===== amdgpu ドライバをサポートするカーネルをコンパイル =====&lt;br /&gt;
&lt;br /&gt;
[[カーネル]]をビルド/コンパイルする場合、{{ic|1=CONFIG_DRM_AMDGPU_SI=Y}} と {{ic|1=CONFIG_DRM_AMDGPU_CIK=Y}} の一方/両方を config で設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== ACO コンパイラ ===&lt;br /&gt;
&lt;br /&gt;
[https://steamcommunity.com/games/221410/announcements/detail/1602634609636894200 ACO コンパイラ]はオープンソースのシェーダコンパイラであり、[https://llvm.org/ LLVM コンパイラ]や [https://github.com/GPUOpen-Drivers/AMDVLK AMDVLK ドライバ]、[[wikipedia:ja:Microsoft Windows 10|Windows 10]] に直接対抗するために [[wikipedia:ja:Valve Corporation|Valve Corporation]] によって作成・開発されています。LLVM と AMDVLK よりも短いコンパイル時間と、ゲームでのより良いパフォーマンスを提供します。&lt;br /&gt;
&lt;br /&gt;
いくつかのベンチマークは [https://gist.github.com/pendingchaos/aba1e4c238cf039d17089f29a8c6aa63 GitHub] や Phoronix [https://www.phoronix.com/scan.php?page=article&amp;amp;item=radv-aco-llvm&amp;amp;num=1 (1)] [https://www.phoronix.com/scan.php?page=article&amp;amp;item=radv-aco-gcn10&amp;amp;num=1 (2)] [https://www.phoronix.com/scan.php?page=article&amp;amp;item=mesa20radv-aco-amdvlk&amp;amp;num=1 (3)] で見られます。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|mesa}} バージョン [https://docs.mesa3d.org/relnotes/20.2.0.html#new-features 20.2] から、ACO はデフォルトのシェーダコンパイラとなっています。&lt;br /&gt;
&lt;br /&gt;
== ロード ==&lt;br /&gt;
&lt;br /&gt;
{{ic|amdgpu}} カーネルモジュールはシステムの起動時に自動的にロードされることになっています。&lt;br /&gt;
&lt;br /&gt;
ロードされない場合:&lt;br /&gt;
&lt;br /&gt;
* 必要な場合は [[#Southern Islands (SI) と Sea Islands (CIK) のサポートを有効化]]していることを確認してください。&lt;br /&gt;
* 最新の {{Pkg|linux-firmware-amdgpu}} パッケージがインストールされていることを確認してください。このドライバは、正しくブートするために各モデルの最新のファームウェアを必要とします。&lt;br /&gt;
* [[カーネルパラメータ]]に {{ic|nomodeset}} や {{ic|1=vga=}} を指定して&#039;&#039;&#039;いない&#039;&#039;&#039;ことを確認してください。{{ic|amdgpu}} は [[KMS]] を必要とするからです。&lt;br /&gt;
* [[カーネルモジュール#ブラックリスト|カーネルモジュールのブラックリスト]]で {{ic|amdgpu}} が無効になっていないことを確認してください。&lt;br /&gt;
&lt;br /&gt;
読み込むことはできるが、X サーバが必要とする時よりも後になってしまう場合、[[カーネルモード設定#KMS の早期開始]] を見てください。&lt;br /&gt;
&lt;br /&gt;
== Xorg の設定 ==&lt;br /&gt;
&lt;br /&gt;
[[Xorg]] は自動的にドライバをロードし、モニタの EDID を使ってネイティブの解像度を設定してくれます。設定が必要になるのは、ドライバをチューニングする場合のみです。&lt;br /&gt;
&lt;br /&gt;
手動で設定したい場合、{{ic|/etc/X11/xorg.conf.d/20-amdgpu.conf}} を作成して、以下を記述してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|2=&lt;br /&gt;
Section &amp;quot;OutputClass&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;AMD&amp;quot;&lt;br /&gt;
     MatchDriver &amp;quot;amdgpu&amp;quot;&lt;br /&gt;
     Driver &amp;quot;amdgpu&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
このセクションを使って、機能を有効化したりドライバの設定を調整したりできます。ドライバオプションを設定する前に、まず {{man|4|amdgpu}} を見てください。&lt;br /&gt;
&lt;br /&gt;
=== TearFree レンダリング ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;TearFree&#039;&#039; は、ハードウェアのページフリッピング機構を使ってティアリング防止を制御します。デフォルトでは、TearFree は、回転された出力、RandR 変換が適用された出力、RandR 1.4 スレーブ出力に対してオンになり、それら以外ではオフになります。{{ic|true}} か {{ic|false}} を指定することで、常にオンにしたり、常にオフにしたりもできます。&lt;br /&gt;
&lt;br /&gt;
 Option &amp;quot;TearFree&amp;quot; &amp;quot;true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[xrandr]] を使用して TearFree を一時的に有効にすることもできます:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --output &#039;&#039;output&#039;&#039; --set TearFree on&lt;br /&gt;
&lt;br /&gt;
{{ic|&#039;&#039;output&#039;&#039;}} は {{ic|DisplayPort-0}} や {{ic|HDMI-A-0}} のような形式である必要があります。この値は {{ic|xrandr -q}} で取得できます。&lt;br /&gt;
&lt;br /&gt;
=== DRI レベル ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DRI&#039;&#039; は、有効にする DRI の最大レベルを設定します。有効な値は、DRI2 の場合は &#039;&#039;2&#039;&#039;、 DRI3 の場合は &#039;&#039;3&#039;&#039; です。 [[Xorg]] バージョンが 1.18.3 以降の場合、DRI3 のデフォルトは &#039;&#039;3&#039;&#039; です。それ以外の場合、 DRI2 が使用されます:&lt;br /&gt;
&lt;br /&gt;
 Option &amp;quot;DRI&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 可変リフレッシュレート ===&lt;br /&gt;
&lt;br /&gt;
[[可変リフレッシュレート]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 10 ビットカラー ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|10 ビットカラーを有効化すると、多くのアプリケーションでグラフィックの乱れやクラッシュを引き起こす場合があります。これには特に [[Steam/トラブルシューティング#Steam: An X Error occurred|Steam]] が含まれ、X Error によりクラッシュします。}}&lt;br /&gt;
&lt;br /&gt;
新しい AMD カードは 10bpc カラーをサポートしていますが、デフォルトは 24 ビットカラーであり、30 ビットカラーは明示的に有効にする必要があります。アプリケーションがこれもサポートしている場合、これを有効にすると、グラデーションの目に見えるバンディング/グラフィックの乱れを減らすことができます。モニターがサポートしているかどうかを確認するには、[[Xorg#一般|Xorg ログファイル]]で &#039;&#039;EDID&#039;&#039; を検索してください (例:{{ic|/var/log/Xorg.0.log}} または {{ic|~/.local/share/xorg/Xorg.0.log}}):&lt;br /&gt;
&lt;br /&gt;
 [   336.695] (II) AMDGPU(0): EDID for output DisplayPort-0&lt;br /&gt;
 [   336.695] (II) AMDGPU(0): EDID for output DisplayPort-1&lt;br /&gt;
 [   336.695] (II) AMDGPU(0): Manufacturer: DEL  Model: a0ec  Serial#: 123456789&lt;br /&gt;
 [   336.695] (II) AMDGPU(0): Year: 2018  Week: 23&lt;br /&gt;
 [   336.695] (II) AMDGPU(0): EDID Version: 1.4&lt;br /&gt;
 [   336.695] (II) AMDGPU(0): Digital Display Input&lt;br /&gt;
 &#039;&#039;&#039;[   336.695] (II) AMDGPU(0): 10 bits per channel&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
現在有効になっているかどうかを確認するには、&#039;&#039;Depth&#039;&#039; を検索してください:&lt;br /&gt;
&lt;br /&gt;
 [   336.618] (**) AMDGPU(0): Depth 30, (--) framebuffer bpp 32&lt;br /&gt;
 [   336.618] (II) AMDGPU(0): Pixel depth = 30 bits stored in 4 bytes (32 bpp pixmaps)&lt;br /&gt;
&lt;br /&gt;
デフォルトの設定では、24 であると表示されます (24 ビットが 4 バイトに格納されている)。&lt;br /&gt;
&lt;br /&gt;
10ビットが機能するかどうかを確認するには、Xorg を実行している場合は終了し、白黒の縞模様を表示する {{ic|Xorg -retro}} を実行し、{{ic|Ctrl-Alt-F1}} と {{ic|Ctrl-C}} を押して X を終了し、{{ic|Xorg -depth 30 -retro}} を実行してください。これが正常に機能する場合は、10ビットが機能しています。&lt;br /&gt;
&lt;br /&gt;
{{ic|startx}} を介して10ビットで起動するには、{{ic|startx -- -depth 30}} を使用してください。永続的に有効にするには、以下を作成または追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|2=&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
	Identifier &amp;quot;asdf&amp;quot;&lt;br /&gt;
	DefaultDepth 30&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 出力のレイテンシを減らす ===&lt;br /&gt;
&lt;br /&gt;
レイテンシを最小化したい場合、ページフリッピングや TearFree を無効化できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/20-amdgpu.conf|2=&lt;br /&gt;
Section &amp;quot;OutputClass&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;AMD&amp;quot;&lt;br /&gt;
     MatchDriver &amp;quot;amdgpu&amp;quot;&lt;br /&gt;
     Driver &amp;quot;amdgpu&amp;quot;&lt;br /&gt;
     Option &amp;quot;EnablePageFlip&amp;quot; &amp;quot;off&amp;quot;&lt;br /&gt;
     Option &amp;quot;TearFree&amp;quot; &amp;quot;false&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
レイテンシを更に減らしたい場合は [[ゲーム#DRI の遅延を軽減する]] を見てください。&lt;br /&gt;
&lt;br /&gt;
{{Note|これらのオプションを設定すると、ティアリングや短時間のアーティファクトが発生する場合があります。}}&lt;br /&gt;
&lt;br /&gt;
== 機能 ==&lt;br /&gt;
&lt;br /&gt;
=== ビデオアクセラレーション ===&lt;br /&gt;
&lt;br /&gt;
[[ハードウェアビデオアクセラレーション#AMD/ATI]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== モニタリング ===&lt;br /&gt;
&lt;br /&gt;
GPU の温度や P-state を確認したい場合に GPU のモニタリングはしばしば行われます。&lt;br /&gt;
&lt;br /&gt;
==== CLI ====&lt;br /&gt;
&lt;br /&gt;
* {{App|amdgpu_top|AMDGPU の使用率を表示するツール|https://github.com/Umio-Yasuno/amdgpu_top|{{Pkg|amdgpu_top}}}}&lt;br /&gt;
* {{App|nvtop|AMD、Intel、NVIDIA で GPU プロセスをモニタリングします。|https://github.com/Syllo/nvtop|{{Pkg|nvtop}}}}&lt;br /&gt;
* {{App|radeontop|合計のアクティビティ率と個々のブロック両方の GPU 使用率ビュアー。|https://github.com/clbr/radeontop|{{Pkg|radeontop}}}}&lt;br /&gt;
&lt;br /&gt;
==== GUI ====&lt;br /&gt;
&lt;br /&gt;
* {{App|amdgpu_top|AMDGPU の使用率を表示するツール|https://github.com/Umio-Yasuno/amdgpu_top|{{Pkg|amdgpu_top}}}}&lt;br /&gt;
* {{App|AmdGuid|完全に Rust で書かれた、基本的なファンコントロール GUI。|https://github.com/Eraden/amdgpud|{{AUR|amdguid-wayland-bin}}, {{AUR|amdguid-glow-bin}}}}&lt;br /&gt;
* {{App|Radeon Profile|AMD Radeon カードの現在のクロックを読み込んだり変更したりする Qt5 ツール。|https://github.com/emerge-e-world/radeon-profile|{{AUR|radeon-profile-git}}}}&lt;br /&gt;
* {{App|TuxClocker|Qt5 のモニタリング・オーバークロックツール。|https://github.com/Lurkki14/tuxclocker|{{AUR|tuxclocker}}}}&lt;br /&gt;
&lt;br /&gt;
==== 手動 ====&lt;br /&gt;
&lt;br /&gt;
GPU の P-state を確認するには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/class/drm/card0/device/pp_od_clk_voltage&lt;br /&gt;
&lt;br /&gt;
GPU をモニタリングするには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
# watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info&lt;br /&gt;
&lt;br /&gt;
GPU 使用率を確認するには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/class/drm/card0/device/gpu_busy_percent&lt;br /&gt;
&lt;br /&gt;
GPU のクロックを確認するには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/class/drm/card0/device/pp_dpm_sclk&lt;br /&gt;
&lt;br /&gt;
GPU 温度を確認するには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/class/drm/card0/device/hwmon/hwmon*/temp1_input&lt;br /&gt;
&lt;br /&gt;
VRAM のクロックを確認するには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/class/drm/card0/device/pp_dpm_mclk&lt;br /&gt;
&lt;br /&gt;
VRAM の使用率を確認するには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/class/drm/card0/device/mem_info_vram_used&lt;br /&gt;
&lt;br /&gt;
VRAM のサイズを確認するには、以下を実行:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/class/drm/card0/device/mem_info_vram_total&lt;br /&gt;
&lt;br /&gt;
=== オーバークロック ===&lt;br /&gt;
&lt;br /&gt;
Linux 4.17 以降、以下の機能をブート時に有効化すると、{{Ic|1=/sys/class/drm/card0/device/pp_od_clk_voltage}} を介してグラフィックカードのクロックと電圧を調整できるようになります。&lt;br /&gt;
&lt;br /&gt;
==== ブートパラメータ ====&lt;br /&gt;
&lt;br /&gt;
{{Ic|1=amdgpu.ppfeaturemask=0xffffffff}} [[カーネルパラメータ]] を追加して、sysfs でクロックと電圧を調整するアクセスをアンロックする必要があります。&lt;br /&gt;
&lt;br /&gt;
すべてのビットが定義されているわけではありません。今後、新しい機能が追加されるかもしれません。32ビットすべてを設定すると、不安定な機能が有効化され、画面のチラツキやサスペンドからの復帰に失敗するなどの問題が発生する場合があります。デフォルトの ppfeaturemask と共に PP_OVERDRIVE_MASK ビット (0x4000) を設定すれば十分なはずです。あなたのシステムにおいて適切なパラメータを計算するには、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ printf &#039;amdgpu.ppfeaturemask=0x%x\n&#039; &amp;quot;$(($(cat /sys/module/amdgpu/parameters/ppfeaturemask) | 0x4000))&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== 手動 ====&lt;br /&gt;
&lt;br /&gt;
{{Note|sysfs では、{{ic|/sys/class/drm/...}} のようなパスはただのシンボリックリンクで、起動するごとに変化するかもしれません。永続的なパスは {{ic|/sys/devices/}} にあります (例: {{ic|/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/}})。信頼性の高い結果を得るには、コマンドを適宜調整してください。}}&lt;br /&gt;
&lt;br /&gt;
利用可能なオプションに関する詳細は、カーネルドキュメントの [https://docs.kernel.org/gpu/amdgpu/thermal.html#pp-od-clk-voltage amdgpu サーマルコントロール]に関する部分を読んでください。&lt;br /&gt;
&lt;br /&gt;
手動オーバークロックを有効にするには、[[#パフォーマンスレベル]] で説明されているように {{ic|manual}} パフォーマンスレベルを選択してください。&lt;br /&gt;
&lt;br /&gt;
例えば、Polaris GPU で最大 P-state 7 で GPU クロックを 1209MHz、電圧を 900mV に設定するには、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;s 7 1209 900&amp;quot; &amp;gt; /sys/class/drm/card0/device/pp_od_clk_voltage&lt;br /&gt;
&lt;br /&gt;
同じ手順を VRAM に対しても適用できます (例えば、Polaris 5xx シリーズカードでの最大 P-state 2):&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;m 2 1850 850&amp;quot; &amp;gt; /sys/class/drm/card0/device/pp_od_clk_voltage&lt;br /&gt;
&lt;br /&gt;
{{Warning|入力した値をダブルチェックしてください。間違うと即座にハードウェアに深刻なダメージを引き起こすかもしれません!}}&lt;br /&gt;
&lt;br /&gt;
適用するには:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;c&amp;quot; &amp;gt; /sys/class/drm/card0/device/pp_od_clk_voltage&lt;br /&gt;
&lt;br /&gt;
機能していることを確認するには、3D の負荷をかけている状態で、クロックと電圧を見てください:&lt;br /&gt;
&lt;br /&gt;
 # watch -n 0.5 cat /sys/kernel/debug/dri/0/amdgpu_pm_info&lt;br /&gt;
&lt;br /&gt;
以下でデフォルトの値にリセットできます:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;r&amp;quot; &amp;gt; /sys/class/drm/card0/device/pp_od_clk_voltage&lt;br /&gt;
&lt;br /&gt;
例えば、超省電力 P-state における (画面のちらつきやカクつきなどの) 問題を回避した場合などは、ドライバが特定の P-state へ切り替えるのを禁止することも可能です。最も高い VRAM P-state を強制し、GPU 自体は引き続き低いクロックで動作できるようにするには、まず利用可能な最も高い P-state を調べ、それを設定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ cat /sys/class/drm/card0/device/pp_dpm_mclk|&lt;br /&gt;
0: 96Mhz *&lt;br /&gt;
1: 456Mhz&lt;br /&gt;
2: 675Mhz&lt;br /&gt;
3: 1000Mhz&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;manual&amp;quot; &amp;gt; /sys/class/drm/card0/device/power_dpm_force_performance_level&lt;br /&gt;
 # echo &amp;quot;3&amp;quot; &amp;gt;  /sys/class/drm/card0/device/pp_dpm_mclk&lt;br /&gt;
&lt;br /&gt;
上位3つの GPU P-state のみを許可するには:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;5 6 7&amp;quot; &amp;gt; /sys/class/drm/card0/device/pp_dpm_sclk&lt;br /&gt;
&lt;br /&gt;
GPU の最大電力消費量を設定するには (例えば 50 ワット):&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;&#039;&#039;50&#039;&#039;&#039;000000 &amp;gt; /sys/class/drm/card0/device/hwmon/hwmon0/power1_cap&lt;br /&gt;
&lt;br /&gt;
{{Note|上記の手順は Polaris RX 560 カードでテストされました。別の GPU では、異なる挙動やバグが存在するかもしれません。}}&lt;br /&gt;
&lt;br /&gt;
==== アシスト付き ====&lt;br /&gt;
&lt;br /&gt;
GPU を手動でオーバークロックしたくない場合、AMD GPU のオーバークロックやモニタリングをアシストするいくつかのツールがコミュニティによって提供されています。&lt;br /&gt;
&lt;br /&gt;
===== CLI ツール =====&lt;br /&gt;
&lt;br /&gt;
* {{App|amdgpu-clocks|AMD GPU のモニタリングやカスタムの P-state を設定するために使用できるスクリプト。起動時に自動的に設定を適用する systemd サービスもあります。|https://github.com/sibradzic/amdgpu-clocks|{{AUR|amdgpu-clocks-git}}}}&lt;br /&gt;
* {{App|ruby-amdgpu_fan|amdgpu Linux ドライバと対話するための Ruby で書かれた CLI ツール|https://github.com/HarlemSquirrel/amdgpu-fan-rb|{{AUR|ruby-amdgpu_fan}}}}&lt;br /&gt;
&lt;br /&gt;
===== GUI ツール =====&lt;br /&gt;
&lt;br /&gt;
* {{App|TuxClocker|Qt5 のモニタリング・オーバークロックツール|https://github.com/Lurkki14/tuxclocker|{{AUR|tuxclocker}}}}&lt;br /&gt;
* {{App|CoreCtrl|アプリケーション毎のプロファイルをサポートする、WattMan ライクな UI の GUI オーバークロックツール。|https://gitlab.com/corectrl/corectrl|{{Pkg|corectrl}}}}&lt;br /&gt;
* {{App|LACT|AMD GPU の情報を見るための GTK ツール。{{Pkg|power-profiles-daemon}} と競合します。競合を防ぐには {{ic|amdgpu_dpm}} を後で無効化してください。[https://github.com/ilya-zlobintsev/LACT?tabreadme-ov-file#power-profiles-daemon-note]|https://github.com/ilya-zlobintsev/LACT|{{Pkg|lact}}}}&lt;br /&gt;
* {{App|Radeon Profile|AMD Radeon カードの現在のクロックを読み込んだり変更したりする Qt5 ツール。|https://github.com/emerge-e-world/radeon-profile|{{AUR|radeon-profile-git}}}}&lt;br /&gt;
&lt;br /&gt;
==== ブート時のスタートアップ ====&lt;br /&gt;
&lt;br /&gt;
方法としては、一つは systemd ユニットを使うことです。起動時に設定を自動的に適用したい場合、起動時に設定を構成・適用することに関するこの [https://www.reddit.com/r/Amd/comments/agwroj/how_to_overclock_your_amd_gpu_on_linux/ Reddit スレッド]を見てみることを検討してください。&lt;br /&gt;
&lt;br /&gt;
もう一つの方法は udev ルールです。例えば、パフォーマンスレベルを落とす値を設定して電力消費量を削減するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/30-amdgpu-low-power.rules|2=&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;drm&amp;quot;, DRIVERS==&amp;quot;amdgpu&amp;quot;, ATTR{device/power_dpm_force_performance_level}=&amp;quot;low&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== パフォーマンスレベル ===&lt;br /&gt;
&lt;br /&gt;
AMDGPU にはいくつかのパフォーマンスレベルがあります。このレベルは power_dpm_force_performance_level ファイルで調整/確認することができます。以下のレベルから選択できます:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;auto&#039;&#039;&#039;: 現在の条件に合わせて、ドライバー内で最適な電源プロファイルを動的に選択します。&lt;br /&gt;
* &#039;&#039;&#039;low&#039;&#039;&#039;: クロック数は最低のパワーステートに強制されます。&lt;br /&gt;
* &#039;&#039;&#039;high&#039;&#039;&#039;: クロック数は最高のパワーステートに強制されます。&lt;br /&gt;
* &#039;&#039;&#039;manual&#039;&#039;&#039;: ユーザーは、各クロックドメインに対してどのパワーステートを有効化するかを手動で選択することができます ([[#電源プロファイル]]を設定する際に使用します)。&lt;br /&gt;
* &#039;&#039;&#039;profile_standard&#039;&#039;&#039;、&#039;&#039;&#039;profile_min_sclk&#039;&#039;&#039;、&#039;&#039;&#039;profile_min_mclk&#039;&#039;&#039;、&#039;&#039;&#039;profile_peak&#039;&#039;&#039;: クロックとパワーのゲーティングが無効化され、クロックはそれぞれのプロファイルに応じて設定されます。このモードは、特定のワークロードに対してプロファイルする際に推奨されます。&lt;br /&gt;
&lt;br /&gt;
以下のコマンドを実行すると、AMDGPU デバイスをパフォーマンスレベル low に設定します:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;low&amp;quot; &amp;gt; /sys/class/drm/card0/device/power_dpm_force_performance_level&lt;br /&gt;
&lt;br /&gt;
{{Note|パフォーマンスレベルは起動のたびに再設定する必要があります。設定を自動化する方法は [[#ブート時のスタートアップ]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== 電源プロファイル ===&lt;br /&gt;
&lt;br /&gt;
AMDGPU は電源プロファイルによるいくつかの最適化を提供します。最も一般的に使用されるのは、OpenCL を多用するアプリケーションのためのコンピュートモードです。利用可能な電源プロファイルは以下のように一覧表示できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ cat /sys/class/drm/card0/device/pp_power_profile_mode|&lt;br /&gt;
NUM        MODE_NAME     SCLK_UP_HYST   SCLK_DOWN_HYST SCLK_ACTIVE_LEVEL     MCLK_UP_HYST   MCLK_DOWN_HYST MCLK_ACTIVE_LEVEL&lt;br /&gt;
  0   BOOTUP_DEFAULT:        -                -                -                -                -                -&lt;br /&gt;
  1   3D_FULL_SCREEN:        0              100               30                0              100               10&lt;br /&gt;
  2     POWER_SAVING:       10                0               30                -                -                -&lt;br /&gt;
  3            VIDEO:        -                -                -               10               16               31&lt;br /&gt;
  4               VR:        0               11               50                0              100               10&lt;br /&gt;
  5        COMPUTE *:        0                5               30               10               60               25&lt;br /&gt;
  6           CUSTOM:        -                -                -                -                -                -&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|{{ic|card0}} はマシンの特定の GPU を示します。複数の GPU が搭載されている場合、正しい GPU を選ぶように気をつけてください。}}&lt;br /&gt;
&lt;br /&gt;
特定の電源プロファイルを使用するには、まず GPU のマニュアルコントロールを有効化する必要があります:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;manual&amp;quot; &amp;gt; /sys/class/drm/card0/device/power_dpm_force_performance_level&lt;br /&gt;
&lt;br /&gt;
その後、電源プロファイルを選択するには、そのプロファイルと関連付けられた NUM の値を書き込みます。例えば、COMPUTE を有効化するには:&lt;br /&gt;
&lt;br /&gt;
 # echo &amp;quot;5&amp;quot; &amp;gt; /sys/class/drm/card0/device/pp_power_profile_mode&lt;br /&gt;
&lt;br /&gt;
{{Note|電源プロファイルの変更は起動するたびに適用する必要があります。これを自動化するには [[#ブート時のスタートアップ]] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
=== GPU ディスプレイスケーリングを有効化 ===&lt;br /&gt;
&lt;br /&gt;
モニタのネイティブ解像度を使用しない場合、ディスプレイに内蔵されているスケーラを用いずに、GPU 自体のスケーラを使うには、以下を実行してください:&lt;br /&gt;
 $ xrandr --output &#039;&#039;output&#039;&#039; --set &amp;quot;scaling mode&amp;quot; &#039;&#039;scaling_mode&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{{ic|&amp;quot;scaling mode&amp;quot;}} に利用できる値は: {{ic|None}}, {{ic|Full}}, {{ic|Center}}, {{ic|Full aspect}}。&lt;br /&gt;
&lt;br /&gt;
* 利用可能な出力と設定を表示するには: {{bc|$ xrandr --prop}}&lt;br /&gt;
* 利用可能な全ての出力に {{ic|1=scaling mode = Full aspect}} を設定するには: {{bc|$ for output in $(xrandr --prop {{!}} grep -E -o -i &amp;quot;^[A-Z\-]+-[0-9]+&amp;quot;); do xrandr --output &amp;quot;$output&amp;quot; --set &amp;quot;scaling mode&amp;quot; &amp;quot;Full aspect&amp;quot;; done}}&lt;br /&gt;
&lt;br /&gt;
=== ヘッドレス環境での仮想ディスプレイ ===&lt;br /&gt;
&lt;br /&gt;
AMDGPU はヘッドレス環境向けに、ダミープラグを使用しない、GPU アクセラレートされた仮想モニターを提供しています。これは RDP や {{AUR|sunshine}} といったゲームストリーミングソフトウェアで便利です。&lt;br /&gt;
&lt;br /&gt;
使用する AMD GPU を選択してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ lspci -Dd ::03xx|&lt;br /&gt;
&#039;&#039;&#039;1234:56:78.9&#039;&#039;&#039; VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] &#039;&#039;CommercialModelName&#039;&#039;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|amdgpu}} に対して {{ic|1=virtual_display=&#039;&#039;1234:56:78.9&#039;&#039;,&#039;&#039;x&#039;&#039;}} [[カーネルモジュールパラメータ]]を追加してください。{{ic|&#039;&#039;1234:56:78.9&#039;&#039;}} の部分は GPU の PCI アドレスで、{{ic|&#039;&#039;x&#039;&#039;}} は公開する crtc (仮想モニター) の番号です。このパラメータを使用すると物理出力は無効化されます。[https://bugzilla.kernel.org/show_bug.cgi?id=203339]&lt;br /&gt;
&lt;br /&gt;
以下のように PCI アドレスをセミコロンで区切ることで、複数の GPU を使用することも可能です:&lt;br /&gt;
&lt;br /&gt;
 amdgpu.virtual_display=1234:56:78.9,&#039;&#039;x&#039;&#039;;9876:54:32.1,&#039;&#039;y&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== モジュールパラメータ ===&lt;br /&gt;
&lt;br /&gt;
amdgpu モジュールは、いくつかの設定パラメータ ({{ic|modinfo amdgpu {{!}} grep mask}}) を[https://raw.githubusercontent.com/torvalds/linux/master/drivers/gpu/drm/amd/include/amd_shared.h カーネルのソースコード]でしかドキュメント化していないマスク内に隠しています。&lt;br /&gt;
&lt;br /&gt;
=== Xorg やアプリケーションが起動しない ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;glxgears&#039;&#039; を開いた後に &amp;quot;(EE) AMDGPU(0): [DRI2] DRI2SwapBuffers: drawable has no back or front?&amp;quot; エラー。Xorg サーバを開くことはできるが、OpenGL アプリケーションはクラッシュする。&lt;br /&gt;
* &amp;quot;(EE) AMDGPU(0): Given depth (32) is not supported by amdgpu driver&amp;quot; エラー。Xorg が起動しない。&lt;br /&gt;
&lt;br /&gt;
Xorg でスクリーンの色深度を 16 か 32 に設定すると問題/クラッシュを引き起こします。これを防ぐには、&amp;quot;screen&amp;quot; セクションに以下を追加して標準的なスクリーン色深度である 24 を使う必要があります:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/10-screen.conf|&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
       Identifier     &amp;quot;Screen&amp;quot;&lt;br /&gt;
       DefaultDepth    24&lt;br /&gt;
       SubSection      &amp;quot;Display&amp;quot;&lt;br /&gt;
               Depth   24&lt;br /&gt;
       EndSubSection&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== スクリーンのアーティファクトと周波数の問題 ===&lt;br /&gt;
&lt;br /&gt;
[[ATI#動的電源管理|動的電源管理]]は、(60Hz以上の) 高いリフレッシュレートでモニタを表示させた際にスクリーンのアーティファクトを発生させる場合があります。GPU のクロック速度の管理法に問題があるためです [https://bugs.freedesktop.org/show_bug.cgi?id=96868][https://gitlab.freedesktop.org/drm/amd/-/issues/234]。&lt;br /&gt;
&lt;br /&gt;
回避策[https://bugs.freedesktop.org/show_bug.cgi?id=96868#c13]は、[[#パフォーマンスレベル]] で説明されているようにパフォーマンスレベルを {{ic|high}} あるいは {{ic|low}} に設定することです。&lt;br /&gt;
&lt;br /&gt;
カーネルのバージョンを変更することでもこの問題を解決できる場合があります。例えば、バージョン 6.12.9 では問題は解決されているようです。&lt;br /&gt;
&lt;br /&gt;
==== Chromium でアーティファクト ====&lt;br /&gt;
&lt;br /&gt;
[[Chromium]] でアーティファクトが現れる場合、vulkan ベースのバックエンドの使用を強制すると解決するかもしれません。{{ic|chrome://flags}} を開き、{{ic|#ignore-gpu-blocklist}} と {{ic|#enable-vulkan}} を &#039;&#039;enable&#039;&#039; にしてください。&lt;br /&gt;
&lt;br /&gt;
=== R9 390 シリーズで悪いパフォーマンス/不安定 ===&lt;br /&gt;
&lt;br /&gt;
AMD R9 390 シリーズのグラフィックカードで問題[https://gitlab.freedesktop.org/mesa/mesa/-/issues/1222]が発生する場合、次の[[カーネルパラメータ]]を設定して、radeon ではなく amdgpu ドライバの使用を強制してください: {{ic|1=radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1 amdgpu.dc=1}}&lt;br /&gt;
&lt;br /&gt;
これがうまく行かない場合、DPM を無効化すると解決するかもしれません。次を[[カーネルパラメータ]]に追加してください: {{ic|1=radeon.cik_support=0 radeon.si_support=0 amdgpu.cik_support=1 amdgpu.si_support=1}}&lt;br /&gt;
&lt;br /&gt;
=== &amp;quot;[drm] IP block:gmc_v8_0 is hung!&amp;quot; カーネルエラーでフリーズ ===&lt;br /&gt;
&lt;br /&gt;
GPU が大量の処理を行っている最中にフリーズやカーネルのクラッシュが発生して、&amp;quot;[drm] IP block:gmc_v8_0 is hung!&amp;quot; カーネルエラーが発生する場合 [https://gitlab.freedesktop.org/drm/amd/issues/226]、回避策は [[カーネルパラメータ]] {{ic|1=amdgpu.vm_update_mode=3}} を設定して GPUVM ページテーブルの更新を CPU を用いて行うように強制することです。デメリットはここにリストされています: [https://gitlab.freedesktop.org/drm/amd/-/issues/226#note_308665]。&lt;br /&gt;
&lt;br /&gt;
=== 画面が白く/灰色に点滅する ===&lt;br /&gt;
&lt;br /&gt;
解像度を変更したり外部モニタに接続したりしたときに、画面がちらつく、あるいは白くなったままになる場合、[[カーネルパラメータ]] {{ic|1=amdgpu.sg_display=0}} を追加してください。&lt;br /&gt;
&lt;br /&gt;
=== Vega カード上でのゲーム中にシステムのフリーズ/クラッシュ ===&lt;br /&gt;
&lt;br /&gt;
[[ATI#動的電源管理|動的電源管理]]は、ゲーム中にシステムの完全なフリーズを発生させる場合があります。GPU のクロック速度の管理法に問題があるためです [https://gitlab.freedesktop.org/drm/amd/-/issues/716]。回避策は、[[#パフォーマンスレベル]] で説明されているようにパフォーマンスレベルを {{ic|high}} に設定することです。。&lt;br /&gt;
&lt;br /&gt;
=== WebRenderer (Firefox) の破損 ===&lt;br /&gt;
&lt;br /&gt;
[[:en:Firefox/Tweaks#WebRender|WebRenderer]] がユーザによって強制的に有効化されている場合、アーティファクトやその他の異常が発生する場合があります(例: 拡張機能のオプションを選択できないなど)。回避策は OpenGL コンポジットにフォールバックすることです。&lt;br /&gt;
&lt;br /&gt;
=== 4K@60Hz のデバイスが接続されると音声の速度が2倍になる/音が高くなる/無音 ===&lt;br /&gt;
&lt;br /&gt;
これは、AMDGPU デバイスと、HDMI で接続された 4K ディスプレイとの間の通信の問題により時々発生します。利用可能な回避策は、ディスプレイの組み込み設定から HDR か &amp;quot;Ultra HD Deep Color&amp;quot; を有効化することです。多くの Android ベースのテレビでは、これは &amp;quot;Optimal&amp;quot; ではなく &amp;quot;Standard&amp;quot; を設定することを意味します。&lt;br /&gt;
&lt;br /&gt;
=== ディスクリート amdgpu グラフィックカードにおける電源管理/動的再アクティブ化の問題 ===&lt;br /&gt;
&lt;br /&gt;
カーネルドライバはロードされたが、ゲームでディスクリートグラフィックカードを利用できない、または使用中に無効化されてしまう問題が発生する場合 ([https://gitlab.freedesktop.org/drm/amd/-/issues/1820] に似た問題)、[[カーネルパラメータ]] {{ic|1=amdgpu.runpm=0}} を設定することでこの問題を回避できます。このカーネルパラメータは、dGPU が実行時に動的にオフになることを防止します。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイが固まる、または応答しなくなる (flip_done timed out) ===&lt;br /&gt;
&lt;br /&gt;
amdgpu ドライバのバグにより、ディスプレイが更新されなくなることがあります[https://gitlab.freedesktop.org/drm/amd/-/issues/4141]。回避策として、{{ic|1=amdgpu.dcdebugmask=0x10}} か {{ic|1=amdgpu.dcdebugmask=0x12}} [[カーネルパラメータ]]を追加することが提案されています。&lt;br /&gt;
&lt;br /&gt;
=== kfd: amdgpu: TOPAZ not supported in kfd ===&lt;br /&gt;
&lt;br /&gt;
システムのジャーナルやカーネルメッセージキーリングに以下の critical レベルのエラーメッセージが出力される場合があります:&lt;br /&gt;
&lt;br /&gt;
 kfd: amdgpu: TOPAZ not supported in kfd&lt;br /&gt;
&lt;br /&gt;
[[GPGPU#ROCm|Radeon Open Compute]] を使用するつもりでないならば、これは安全に無視できます。古い GPU であるため、TOPAZ ではサポートされていません。[https://github.com/RadeonOpenCompute/ROCm/issues/1148#issuecomment-747849592] [https://www.reddit.com/r/linuxquestions/comments/yhbbiz/kfd_kfd_amdgpu_topaz_not_supported_in_kfd/]&lt;br /&gt;
&lt;br /&gt;
=== MCLK が MAX (1000Mhz) に固定されてアイドル時に高い電力消費、または MIN (96MHz) に固定されてゲームのパフォーマンスが悪化 (カーネル 6.4) ===&lt;br /&gt;
&lt;br /&gt;
高解像度かつ高リフレッシュレートの場合、MCLK (vram / メモリのクロック) が最も高いクロックレート (1000MHz) に固定されてしまい [https://gitlab.freedesktop.org/drm/amd/-/issues/1403] [https://gitlab.freedesktop.org/drm/amd/-/issues/2646]、アイドル時に GPU の電力消費が増加してしまう場合があります。Linux カーネル 6.4.x では、MCLK クロックが最低値 (96MHz) になって、ゲームのパフォーマンスが低下してしまいます [https://gitlab.freedesktop.org/drm/amd/-/issues/2657] [https://gitlab.freedesktop.org/drm/amd/-/issues/2611]。&lt;br /&gt;
&lt;br /&gt;
これは、モニタが Coordinated Video Timings (CVT) を使用しておらず、影響を受ける解像度とリフレッシュレートに対する V-Blank 値が低いことが原因である可能性があります。回避策は[https://gist.github.com/Rend0e/3bddac4285dc1f4fbe303f326f36f6cc この gist] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== Suspend to RAM に失敗する ===&lt;br /&gt;
&lt;br /&gt;
十分にリフレッシュされない VRAM のデータ消失を防ぐために、{{ic|amdgpu}} カーネルモジュールはシステムが S3 スリープに入るときに VRAM の内容を RAM 内に保存します。&lt;br /&gt;
&lt;br /&gt;
大量の VRAM を使用していて RAM に十分な空き容量がない場合、たとえ十分なスワップメモリが存在していたとしても、[https://gitlab.freedesktop.org/drm/amd/-/issues/2125 このプロセスが失敗する可能性があります] (IO サブシステムがすでにサスペンドされているかもしれないため)。&lt;br /&gt;
&lt;br /&gt;
このとき、以下のようなメッセージが出力されます:&lt;br /&gt;
&lt;br /&gt;
 kernel: systemd-sleep: page allocation failure: order:0, mode:0x100c02(GFP_NOIO|__GFP_HIGHMEM|__GFP_HARDWALL), nodemask=(null),cpuset=/,mems_allowed=0&lt;br /&gt;
 kernel: Call Trace:&lt;br /&gt;
 kernel:  &amp;lt;TASK&amp;gt;&lt;br /&gt;
 kernel:  dump_stack_lvl+0x47/0x60&lt;br /&gt;
 kernel:  warn_alloc+0x165/0x1e0&lt;br /&gt;
 kernel:  __alloc_pages_slowpath.constprop.0+0xd7d/0xde0&lt;br /&gt;
 kernel:  __alloc_pages+0x32d/0x350&lt;br /&gt;
 kernel:  ttm_pool_alloc+0x19f/0x600 [ttm 0bd92a9d9dccc3a4f19554535860aaeda76eb4f4]&lt;br /&gt;
&lt;br /&gt;
回避策としては、システムがサスペンドする前に十分な RAM 領域をスワップアウトして VRAM を格納できるのに十分な空き領域を RAM に確保しておく[https://git.dolansoft.org/lorenz/memreserver ユーザー空間のサービス]を使うというものがります。&lt;br /&gt;
&lt;br /&gt;
=== シャットダウンとサスペンドに失敗する ===&lt;br /&gt;
&lt;br /&gt;
カーネルモジュールの &#039;&#039;hid_sensor_*_3d&#039;&#039; グループは、ブート時、シャットダウン時、サスペンド時にシステムがフリーズする問題を引き起こすことがあります。プロセスリストには複数の {{ic|udev-worker}} インスタンスが現れ、システムのスリープ時にフリーズしてしまいます。&lt;br /&gt;
&lt;br /&gt;
このとき、以下のように出力されます:&lt;br /&gt;
&lt;br /&gt;
 kernel: PM: suspend entry (deep)&lt;br /&gt;
 kernel: Filesystems sync: 0.002 seconds&lt;br /&gt;
 kernel: Freezing user space processes&lt;br /&gt;
 kernel: Freezing user space processes failed after 20.004 seconds (1 tasks refusing to freeze, wq_busy=0):&lt;br /&gt;
 kernel: task:(udev-worker)   state:D stack:0     pid:479   tgid:479   ppid:422    flags:0x00004006&lt;br /&gt;
 kernel: Call Trace:&lt;br /&gt;
 kernel:  &amp;lt;TASK&amp;gt;&lt;br /&gt;
 kernel:  __schedule+0x3db/0x1520&lt;br /&gt;
 kernel:  ? srso_alias_return_thunk+0x5/0xfbef5&lt;br /&gt;
 kernel:  ? __wake_up_common+0x78/0xa0&lt;br /&gt;
 kernel:  ? srso_alias_return_thunk+0x5/0xfbef5&lt;br /&gt;
&lt;br /&gt;
この問題の回避策は、例えば以下のような {{ic|/etc/modprobe.d/blacklist-hid_sensors.conf}} を作成するなどして、問題のあるモジュールをブラックリスト化することです:&lt;br /&gt;
&lt;br /&gt;
 blacklist hid_sensor_accel_3d&lt;br /&gt;
 blacklist hid_sensor_gyro_3d&lt;br /&gt;
 blacklist hid_sensor_magn_3d&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [[Gentoo:AMDGPU]]&lt;br /&gt;
* [https://gitlab.freedesktop.org/drm/amd AMDGPU イシュートラッカー]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|AMDGPU|2025-06-11|838762}}&lt;/div&gt;</summary>
		<author><name>Akku</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Nouveau&amp;diff=40458</id>
		<title>Nouveau</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Nouveau&amp;diff=40458"/>
		<updated>2025-06-27T04:50:27Z</updated>

		<summary type="html">&lt;p&gt;Akku: typo修正 (オーバーヒット -&amp;gt; オーバーヒート)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:グラフィックス]]&lt;br /&gt;
[[Category:X サーバー]]&lt;br /&gt;
[[en:Nouveau]]&lt;br /&gt;
[[de:Nouveau]]&lt;br /&gt;
[[es:Nouveau]]&lt;br /&gt;
[[fr:Nouveau]]&lt;br /&gt;
[[ru:Nouveau]]&lt;br /&gt;
[[uk:Nouveau]]&lt;br /&gt;
[[zh-hans:Nouveau]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|NVIDIA}}&lt;br /&gt;
{{Related|Xorg}}&lt;br /&gt;
{{Related|Bumblebee}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
この記事では、NVIDIA カード向けのリバースエンジニアリングされたオープンソースドライバー [https://nouveau.freedesktop.org/ Nouveau] のインストールと設定を説明しています。上流のプロプライエタリな {{Pkg|nvidia}} ドライバ及びオープンソースな {{Pkg|nvidia-open}} ドライバについては、[[NVIDIA]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
使用中のカードの[https://nouveau.freedesktop.org/wiki/CodeNames コードネーム]を見つけてください(より詳細なリストは [[Wikipedia:Comparison of Nvidia Graphics Processing Units|Wikipedia]] にあります)。サポートされている機能の[https://nouveau.freedesktop.org/wiki/FeatureMatrix/ 機能表]と比較してください。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|mesa}} パッケージを[[インストール]]してください。これは 3D アクセラレーションのための DRI ドライバを提供します。&lt;br /&gt;
&lt;br /&gt;
* 32ビットアクセラレーションサポートが必要な場合は、[[multilib]] リポジトリから {{Pkg|lib32-mesa}} パッケージもインストールしてください。&lt;br /&gt;
* ([[Xorg]] で 2D アクセラレーションを提供する) DDX ドライバが必要な場合、{{Pkg|xf86-video-nouveau}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|1=[https://nouveau.freedesktop.org/CodeNames.html#NV50 NV50 (G80)] 以降のハードウェアでは {{Pkg|xf86-video-nouveau}} ドライバをインストールせずに代わりに modesetting ドライバにフォールバックさせることが有益であると[https://bugs.freedesktop.org/show_bug.cgi?id=94844#c3 提唱されています]。例えば、2021年の[https://bbs.archlinux.org/viewtopic.php?id=263498 ユーザレポート]を参照してください。}}&lt;br /&gt;
&lt;br /&gt;
[[ハードウェアビデオアクセラレーション]] も参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Mesa NVK Vulkan Driver を使う ===&lt;br /&gt;
&lt;br /&gt;
{{Warning|このドライバはまだ作業中であり、リグレッションが発生することが予測されます。オープンソースドライバとプロプライエタリドライバで動作していた一部のソフトウェア (ほとんどはゲーム) は、おそらく NVK ではあまり (あるいは全く) 動作しないでしょう。ゲームをよくプレイする場合は、NVK がもう少し成熟するまで、NVK の使用を避けたほうが良いでしょう。}}&lt;br /&gt;
&lt;br /&gt;
[https://docs.mesa3d.org/drivers/nvk.html NVK] は、[https://nouveau.freedesktop.org/CodeNames.html#NV110 Maxwell] 及びそれより新しい NVIDIA カード向けの、Nouveau をベースとしたオープンソースの Vulkan ドライバです。&lt;br /&gt;
&lt;br /&gt;
NVK を使用するには、[[カーネル]]のバージョンが 6.7 以上であり、バージョン 24.1 以上の {{Pkg|mesa}} をインストールしておく必要があります。&lt;br /&gt;
&lt;br /&gt;
NVK を有効化する前に、以下のパッケージ (及びこれらの {{ic|lib32}} 版と [[DKMS]] 版) を全て[[アンインストール]]する必要があります:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|nvidia}}、{{Pkg|nvidia-open}}、{{Pkg|nvidia-lts}}、{{AUR|nvidia-beta}}&lt;br /&gt;
* {{Pkg|nvidia-settings}}、{{Pkg|nvidia-utils}}&lt;br /&gt;
* {{Pkg|egl-wayland}}&lt;br /&gt;
&lt;br /&gt;
ハイブリッドグラフィックのノート PC やデュアル GPU のシステムでは、{{ic|/etc/modprobe.d}} の設定で Nouveau が GPU マネージャによってブラックリスト化されていないことを確認してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|おそらく、上記以外の全ての GPU マネージャも[[アンインストール]]したほうが良いでしょう。なぜなら、これらのパッケージの殆どはモジュールをブラックリスト化することで動作し、それによって NVK と干渉してしまうかもしれないからです。}}&lt;br /&gt;
&lt;br /&gt;
次に、{{Pkg|vulkan-nouveau}} (必要であれば {{Pkg|lib32-vulkan-nouveau}} も) を[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
必要であれば[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvGspRm=1}} を追加してください。Ada Lovelace 及びそれより新しいカードにおいてはデフォルトでこのオプションが有効化されています。[https://nouveau.freedesktop.org/PowerManagement.html ドキュメント]のノートを参照してください。&lt;br /&gt;
&lt;br /&gt;
最後に、システムを再起動してください。&lt;br /&gt;
&lt;br /&gt;
正しく動作していることを確認するには、{{Pkg|vulkan-tools}} パッケージの {{ic|vulkaninfo}} を使うことができます。システムの NVIDIA GPU が NVK ドライバを使用していると報告するはずです。&lt;br /&gt;
&lt;br /&gt;
{{hc|$ vulkaninfo|2=&lt;br /&gt;
...&lt;br /&gt;
GPU id : 0 (NVIDIA GeForce RTX 3050 Ti Laptop GPU (&#039;&#039;&#039;NVK GA107&#039;&#039;&#039;)):&lt;br /&gt;
       Surface type = VK_KHR_wayland_surface&lt;br /&gt;
       Formats: count = 8&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== ロード ==&lt;br /&gt;
&lt;br /&gt;
システムの起動時に Nouveau のカーネルモジュールは自動的にロードされるはずです。ロードされない場合は:&lt;br /&gt;
&lt;br /&gt;
* [[カーネルパラメータ]]に {{ic|nomodeset}} や {{ic|1=vga=}} を設定して&#039;&#039;&#039;いない&#039;&#039;&#039;ことを確認してください。Nouveau はカーネルモードセッティングを要求します。&lt;br /&gt;
* また、{{ic|/etc/modprobe.d/}} や {{ic|/usr/lib/modprobe.d/}} の中で modprobe のブラックリストによって Nouveau が無効になっていないことを確認してください。&lt;br /&gt;
* 上記全てを確認しても nouveau がロードされない場合は [[dmesg]] で opcode エラーが起こってないか確認してください。{{ic|1=nouveau.config=NvBios=PRAMIN}} を[[カーネルパラメータ]]に追加することでモジュールのアンロードを防ぐことができます [https://nouveau.freedesktop.org/wiki/TroubleShooting/#index10h3]。&lt;br /&gt;
* {{ic|/etc/X11/xorg.conf}} ファイルまたは {{ic|/etc/X11/xorg.conf.d/}} 内の任意のファイルが存在し、{{ic|nvidia}} ドライバを参照しているかどうかを確認してください。おそらく、このファイルの名前を変更したほうが良いでしょう。&lt;br /&gt;
&lt;br /&gt;
=== 早期 KMS ===&lt;br /&gt;
&lt;br /&gt;
[[カーネルモード設定]] (KMS; Kernel Mode Setting) は、{{ic|nouveau}} ドライバによってサポートされており、[[mkinitcpio]] v32 からブートの早期段階で有効化されるようになっています (このバージョンからデフォルトで {{ic|kms}} フックが含まれています)。他の環境で KMS をブートプロセスの可能な限り早い段階で有効化する方法については、[[カーネルモード設定#KMS の早期開始]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Tip|解像度に問題がある場合、[[カーネルモード設定#モードと EDID を強制する]] をチェックしてください。}}&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== NVIDIA ドライバーをインストールしたままにしておく ===&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|{{ic|/usr/lib/}} 内のファイルを編集しても、パッケージのアップグレード時に上書きされてしまいます。}}&lt;br /&gt;
&lt;br /&gt;
プロプライエタリの NVIDIA ドライバーをインストールしたままにしておきたいが、Nouveau ドライバーも使いたい(そして OpenGL を使用していない)場合、以下の手順に従ってください:&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/modprobe.d/nouveau_blacklist.conf}} または {{ic|/usr/lib/modprobe.d/nvidia-utils.conf}} 内の nouveau のブラックリストを以下のようにコメントアウトしてください:&lt;br /&gt;
&lt;br /&gt;
 #blacklist nouveau&lt;br /&gt;
&lt;br /&gt;
他の設定ファイルにおいても、プロプライエタリなドライバを優先させるような行をコメントアウトしておく必要がある場合があります。例としては、[https://man.archlinux.org/man/systemd-modules-load.service.8.en systemd-modules-load] の {{ic|/usr/lib/modules-load.d/nvidia-utils.conf}} と [[udev]] の {{ic|/usr/lib/udev/rules.d/60-nvidia.rules}} です。以下のコマンドで、ドライバのどのファイルがインストールされているかを確認してください:&lt;br /&gt;
&lt;br /&gt;
 $ pacman -Ql nvidia-utils | grep conf&lt;br /&gt;
&lt;br /&gt;
そして、{{ic|nvidia-}} という接頭辞が付くサービスを無効化していることを確認してください。そのようなサービスはブート時に {{ic|nvidia-modprobe}} を呼び出して NVIDIA のカーネルモジュールをロードするかもしれません。例えば:&lt;br /&gt;
&lt;br /&gt;
 $ systemctl status nvidia-persistenced.service&lt;br /&gt;
&lt;br /&gt;
[[Xorg]] を使用する場合は、NVIDIA の代わりに nouveau をロードするよう指定してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/X11/xorg.conf.d/20-nouveau.conf|&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;Nvidia card&amp;quot;&lt;br /&gt;
    Driver &amp;quot;nouveau&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
再起動して変更を反映させてください。そしてカーネルメッセージを見て正しくロードされていることを確認してください:&lt;br /&gt;
&lt;br /&gt;
 # dmesg&lt;br /&gt;
&lt;br /&gt;
=== 最新の開発パッケージをインストールする ===&lt;br /&gt;
&lt;br /&gt;
最新の Nouveau の改善を得るには:&lt;br /&gt;
&lt;br /&gt;
* {{AUR|linux-git}}&lt;br /&gt;
* {{AUR|libdrm-git}}&lt;br /&gt;
* {{AUR|lib32-libdrm-git}}&lt;br /&gt;
* {{AUR|lib32-mesa-git}}&lt;br /&gt;
* {{AUR|mesa-git}}&lt;br /&gt;
* {{AUR|xf86-video-nouveau-git}}&lt;br /&gt;
&lt;br /&gt;
{{Note|[[#インストール]] で説明したように、ほとんどのケースで xf86-video-nouveau をインストールする必要はなく、推奨もされていません。このパッケージをインストールしないほうが、GPU はより良く機能します。}}&lt;br /&gt;
&lt;br /&gt;
=== デュアルディスプレイ ===&lt;br /&gt;
&lt;br /&gt;
マルチモニターは [[Wikipedia:RandR|RandR]] を使用してセットアップできます。[[マルチディスプレイ#RandR]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== コンソールの解像度を設定する ===&lt;br /&gt;
&lt;br /&gt;
{{ic|1=video=}} カーネルラインオプションを使うことで nouveau に解像度を渡すことができます([[カーネルモード設定]] を参照してください)。&lt;br /&gt;
&lt;br /&gt;
=== 電源管理 ===&lt;br /&gt;
&lt;br /&gt;
nouveau ドライバーには正しい電源管理機能が実装されていないため、グラフィックカードの周波数は低い状態でロックされてパフォーマンスが思うほど出ない場合があります。カードによっては GPU のオーバークロックが実験的にサポートされています ([https://nouveau.freedesktop.org/wiki/PowerManagement Nouveau の電源管理についてのページ] を見てください)。カーネル 4.5 から {{ic|/sys/kernel/debug/dri/*/pstate}} の debugfs インターフェイスを使って制御できるようになっています。&lt;br /&gt;
&lt;br /&gt;
{{Note|[https://gitlab.freedesktop.org/mesa/mesa/-/issues/10933#note_2357592 上流で説明されている]ように、この debugfs インターフェイスを利用できるのは Kepler やそれ以前のカードのみであり、Turing 及びそれ以降のカードでは利用できません。}}&lt;br /&gt;
&lt;br /&gt;
例えば、システム上の1番目のカードで利用可能な電源状態と現在の設定を確認するには、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
 # cat /sys/kernel/debug/dri/0/pstate&lt;br /&gt;
&lt;br /&gt;
インターフェイスに書き込むことで特定の電源状態を手動で設定/強制することもできます:&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;&#039;pstate&#039;&#039; &amp;gt; /sys/kernel/debug/dri/0/pstate&lt;br /&gt;
&lt;br /&gt;
{{Warning|再クロッキングのサポートは実験的です。システムがフリーズしたり、カードがオーバーヒートして破壊される可能性があります。}}&lt;br /&gt;
&lt;br /&gt;
==== ファンの制御 ====&lt;br /&gt;
&lt;br /&gt;
カードで実装されていれば、{{ic|/sys}} を使ってファンの制御を設定できます:&lt;br /&gt;
&lt;br /&gt;
 $ find /sys -name pwm1_enable&lt;br /&gt;
 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/hwmon/hwmon1/pwm1_enable&lt;br /&gt;
 $ readlink /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/driver&lt;br /&gt;
 ../../../../bus/pci/drivers/nouveau&lt;br /&gt;
&lt;br /&gt;
{{ic|pwm1_enable}} は 0, 1, 2 に設定できます。それぞれ NONE, MANUAL, AUTO を意味します。ファン制御を手動で設定する場合、{{ic|pwm1}} を設定する必要があります。例えば 40 にすれば速度が 40% になります。&lt;br /&gt;
&lt;br /&gt;
{{Warning|設定は自己責任です。カードを過熱しすぎないように注意してください。}}&lt;br /&gt;
&lt;br /&gt;
[[udev]] ルールを使って設定することもできます:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/50-nouveau-hwmon.rules|2=&lt;br /&gt;
ACTION==&amp;quot;add&amp;quot;, SUBSYSTEM==&amp;quot;hwmon&amp;quot;, DRIVERS==&amp;quot;nouveau&amp;quot;, ATTR{pwm1_enable}=&amp;quot;2&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
ソース:&lt;br /&gt;
&lt;br /&gt;
* https://floppym.blogspot.de/2013/07/fan-control-with-nouveau.html&lt;br /&gt;
* https://web.archive.org/web/20141031191559/https://kalgan.cc/blog/posts/Controlling_nVidia_cards_fans_with_nouveau_in_Debian/&lt;br /&gt;
&lt;br /&gt;
=== Optimus ===&lt;br /&gt;
&lt;br /&gt;
ラップトップで [[NVIDIA Optimus|Optimus]] (ラップトップに2つの GPU を載せている場合はハイブリッドグラフィック) を使う方法は2つあります: [[bumblebee]] と [[PRIME]]&lt;br /&gt;
&lt;br /&gt;
=== 垂直同期 ===&lt;br /&gt;
&lt;br /&gt;
{{Out of date|{{ic|xr_glx_hybrid}} はレガシーなバックエンドです (さらに、今は動かないようです)。}}&lt;br /&gt;
&lt;br /&gt;
Xorg コンポジタは Nouveau で問題が起きやすくなっています。他のコンポジタと異なり、[[Picom]] はちらつきを起こさないようにするためのオプションが多数存在します。上手く動作する設定例:&lt;br /&gt;
&lt;br /&gt;
 $ picom -b --unredir-if-possible --backend xr_glx_hybrid --vsync --use-damage --glx-no-stencil&lt;br /&gt;
&lt;br /&gt;
{{Tip|コンポジタを使う場合、デスクトップ環境のウィンドウマネージャ (KWin など) のコンポジット機能をオフにしてください。}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
{{ic|1=drm.debug=14}} や {{ic|1=log_buf_len=16M}} を[[カーネルパラメータ]]に追加してビデオデバッグを有効にしてください。&lt;br /&gt;
&lt;br /&gt;
Xorg の詳細ログを作成する:&lt;br /&gt;
&lt;br /&gt;
 $ startx -- -logverbose 9 -verbose 9&lt;br /&gt;
&lt;br /&gt;
ロードされているビデオモジュールのパラメータと値を見る:&lt;br /&gt;
&lt;br /&gt;
 $ modinfo -p video&lt;br /&gt;
&lt;br /&gt;
=== MSI の無効化 ===&lt;br /&gt;
&lt;br /&gt;
モジュールがロードされなかったり X サーバーが起動しない場合、[[カーネルパラメータ]]に {{ic|1=nouveau.config=NvMSI=0}} を追加してみてください。&lt;br /&gt;
&lt;br /&gt;
ソース: https://bugs.freedesktop.org/show_bug.cgi?id=78441&lt;br /&gt;
&lt;br /&gt;
=== 間違った出力端子が検出される問題 ===&lt;br /&gt;
&lt;br /&gt;
nouveau ドライバーでは&amp;quot;幻影&amp;quot;の出力端子が検出されることがあります。例えば、LVDS-1 しか存在しないのに VGA-1 と LVDS-1 が接続されていると表示されることがあります。&lt;br /&gt;
&lt;br /&gt;
ディスプレイに影響して画面が崩れたり、ノートパソコンで蓋を閉じた時にスリープされない問題が生じます。&lt;br /&gt;
&lt;br /&gt;
==== カーネルパラメータ ====&lt;br /&gt;
&lt;br /&gt;
ブートローダーの[[カーネルパラメータ]]で問題の出力端子 (以下の例では VGA-1) を無効化することで解決できます。以下のように追加してください:&lt;br /&gt;
&lt;br /&gt;
 video=VGA-1:d&lt;br /&gt;
&lt;br /&gt;
{{ic|d}} = disable です。&lt;br /&gt;
&lt;br /&gt;
nouveau カーネルモジュールには TV 出力の検知を無効化するオプションがあります[https://nouveau.freedesktop.org/wiki/KernelModuleParameters/#tv_disable]:&lt;br /&gt;
&lt;br /&gt;
 tv_disable = 1&lt;br /&gt;
&lt;br /&gt;
==== Xorg の設定 ====&lt;br /&gt;
&lt;br /&gt;
{{ic|/etc/X11/xorg.conf.d/20-nouveau.conf}} に以下を追加することで [[Xorg]] で幻影の出力端子を無効化することもできます:&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Monitor&amp;quot;&lt;br /&gt;
 Identifier &amp;quot;VGA-1&amp;quot;&lt;br /&gt;
 Option &amp;quot;Ignore&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
ソース: https://web.archive.org/web/20170118202740/http://gentoo-en.vfose.ru/wiki/Nouveau#Phantom_and_unpopulated_output_connector_issues&lt;br /&gt;
&lt;br /&gt;
==== Xrandr ====&lt;br /&gt;
&lt;br /&gt;
[[Xrandr]] で出力端子を無効化することができます:&lt;br /&gt;
&lt;br /&gt;
  $ xrandr --output VGA-1 --off&lt;br /&gt;
&lt;br /&gt;
この設定を [[xinit]] に記述することもできます。&lt;br /&gt;
&lt;br /&gt;
=== カーネルのエラーメッセージを吐いてランダムにフリーズする ===&lt;br /&gt;
&lt;br /&gt;
特定の NVIDIA チップを Nouveau で使用するとシステムがランダムにフリーズして大量のカーネルメッセージを吐くことがあります。メッセージは &#039;&#039;dmesg&#039;&#039; で確認できます。その場合、{{ic|1=nouveau.noaccel=1}} [[カーネルパラメータ]]を追加してみてください。詳しくは [[Fedora:Common kernel problems#Systems with nVidia adapters using the nouveau driver lock up randomly]] を参照。&lt;br /&gt;
&lt;br /&gt;
注意点として、{{ic|1=nouveau.noaccel=1}} カーネルパラメータを使用すると、iGPU が存在しない場合や、[https://h30434.www3.hp.com/t5/Notebook-Video-Display-and-Touch/Integrated-Intel-Graphics-GPU-disabled-by-factory/td-p/7178220 iGPU が工場出荷時に無効化されている]場合に、[https://bugs.kde.org/show_bug.cgi?id=485429 Wayland で CPU 使用率がほぼ 100% になる]かもしれません。この場合、X11 セッションに切り替えるか、{{ic|1=LIBGL_ALWAYS_SOFTWARE=1}} [[環境変数]]を設定して Wayland の OpenGL ハードウェアアクセラレーションを完全に無効化することができます。&lt;br /&gt;
&lt;br /&gt;
{{ic|1=QT_XCB_FORCE_SOFTWARE_OPENGL=1}} [[環境変数]]を使って Qt アプリケーションの OpenGL アクセラレーションを無効化するという方法もあります。&lt;br /&gt;
&lt;br /&gt;
=== Pointer to flat panel table invalid ===&lt;br /&gt;
&lt;br /&gt;
最新のチップセットを使用する NVIDIA グラフィックカードは起動時に問題を起こすことがあります。例えば X11 が起動しなかったり lspci が永遠にフリーズします [https://bugzilla.redhat.com/show_bug.cgi?id=1425253][https://bbs.archlinux.org/viewtopic.php?id=192532][https://stackoverflow.com/questions/28062458/nouveau-error-while-booting-arch][https://bbs.archlinux.org/viewtopic.php?id=207602][https://unix.stackexchange.com/questions/207895/how-do-i-install-antergos-with-a-gtx-970]。&lt;br /&gt;
&lt;br /&gt;
ライブディストリビューションやインストールメディアが壊れることもあります。問題は &#039;&#039;lspci&#039;&#039; を実行するか systemd の[[journal|ジャーナル]]をチェックすることで確認できます:&lt;br /&gt;
&lt;br /&gt;
 nouveau E[     DRM]Pointer to flat panel table invalid&lt;br /&gt;
&lt;br /&gt;
以下の[[カーネルパラメータ]]を使って Nouveau ドライバーを無効化することで起動するようになるかもしれません:&lt;br /&gt;
&lt;br /&gt;
 modprobe.blacklist=nouveau&lt;br /&gt;
&lt;br /&gt;
起動したら以下のコマンドで Nouveau ドライバーをロードしてください:&lt;br /&gt;
&lt;br /&gt;
 modprobe nouveau&lt;br /&gt;
&lt;br /&gt;
これでシステムが正しく動作するはずです。&lt;br /&gt;
他の NVIDIA グラフィックカードを持っていて、念の為に問題のカードを無効化したい場合:&lt;br /&gt;
&lt;br /&gt;
 # echo 1 &amp;gt; /sys/bus/pci/devices/&#039;&#039;card-device-id&#039;&#039;/remove&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Nouveau|2025-06-11|834385}}&lt;/div&gt;</summary>
		<author><name>Akku</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=PRIME&amp;diff=40405</id>
		<title>PRIME</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=PRIME&amp;diff=40405"/>
		<updated>2025-06-14T13:04:32Z</updated>

		<summary type="html">&lt;p&gt;Akku: 変換ミスと思われる箇所を修正 「大対策」-&amp;gt;「代替策」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:グラフィックス]]&lt;br /&gt;
[[en:PRIME]]&lt;br /&gt;
[[zh-hans:PRIME]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|NVIDIA Optimus}}&lt;br /&gt;
{{Related|外付け GPU}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
PRIME は最近のデスクトップやノートパソコンで使われている[[ハイブリッドグラフィック]] ([[NVIDIA Optimus|NVIDIA の Optimus]] や Radeon の AMD Dynamic Switchable Graphics) を管理するためのテクノロジーです。Linux カーネルでマルチプレクサを必要としないハイブリッドグラフィックを実現するものとして &#039;&#039;&#039;PRIME GPU オフロード&#039;&#039;&#039;と &#039;&#039;&#039;Reverse PRIME&#039;&#039;&#039; が存在します。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== オープンソースドライバ ===&lt;br /&gt;
&lt;br /&gt;
クローズドソースのグラフィックドライバを削除して、オープンソースのドライバで置き換えてください:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|xf86-video-nouveau}}&lt;br /&gt;
* {{Pkg|xf86-video-ati}}&lt;br /&gt;
* {{Pkg|xf86-video-amdgpu}}&lt;br /&gt;
* {{Pkg|xf86-video-intel}}&lt;br /&gt;
&lt;br /&gt;
再起動して、使われているグラフィックドライバのリストを確認:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ xrandr --listproviders|&lt;br /&gt;
Providers: number : 2&lt;br /&gt;
Provider 0: id: 0x7d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 3 outputs: 4 associated providers: 1 name:Intel&lt;br /&gt;
Provider 1: id: 0x56 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 6 outputs: 1 associated providers: 1 name:radeon&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
2つのグラフィックカードが存在することを確認できます: 内蔵カードの Intel (id 0x7d) とディスクリートカードの Radeon (id 0x56) です。GPU を激しく消費するアプリケーションは後者を使うべきとなります。&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、Intel のカードが常時使用されます:&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;lt;nowiki&amp;gt;$ glxinfo | grep &amp;quot;OpenGL renderer&amp;quot;&amp;lt;/nowiki&amp;gt;|&lt;br /&gt;
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|時々、表示されているプロバイダが {{ic|radeon}} ではなく {{ic|&amp;quot;HAINAN @ pci:0000:03:00.0&amp;quot;}} になることがあります。この場合、次のコマンドで {{ic|&amp;quot;HAINAN @ pci:0000:03:00.0&amp;quot;}} をプロバイダとして使用する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
=== クローズドソースドライバー ===&lt;br /&gt;
&lt;br /&gt;
プロプライエタリなドライバで PRIME を機能させる手順もほとんど同じです。以下の記事に従ってドライバをインストールしてください:&lt;br /&gt;
&lt;br /&gt;
* [[AMDGPU PRO]]: AMD GPU 用ドライバをインストール&lt;br /&gt;
* [[NVIDIA]]: NVIDIA GPU 用ドライバをインストール&lt;br /&gt;
&lt;br /&gt;
ドライバをインストールしたすぐ後に Xorg を再起動したり再実行したりしないでください。システム構成によっては設定を変更しないと Xorg が起動できなくなります。&lt;br /&gt;
&lt;br /&gt;
ユースケースに合わせて設定を行ってください。必ずしもオープンソースドライバをアンインストールする必要はありませんが、アンインストールしておいたほうが将来的に問題が発生する可能性を少なくできます。&lt;br /&gt;
&lt;br /&gt;
== PRIME GPU オフロード ==&lt;br /&gt;
&lt;br /&gt;
強力なカードでアプリケーションをレンダリングし、ディスプレイが接続されているカードにその結果を送信することが望ましいでしょう。&lt;br /&gt;
&lt;br /&gt;
コマンド {{ic|xrandr --setprovideroffloadsink provider sink}} を使うことで、レンダーオフロードプロバイダからシンクプロバイダ (ディスプレイに接続されているプロバイダ) に出力を送信することが可能です。プロバイダとシンクの識別子は、数字 (0x7d、0x56) あるいは大文字・小文字を区別する名前 (Intel、radeon) で指定することができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 公式リポジトリのほとんどデフォルト Xorg DDX ({{ic|xf86-video-*}} や組み込みの modesetting) ドライバでは、以下の設定はもはや必須ではありません。それらのドライバは、DRI3 がデフォルトで有効化されており、自動的にこれらの割り当てを行うからです。とはいえ、明示的に設定しても特に問題はありません。&lt;br /&gt;
* GPU オフロードは、クローズドソースのドライバではサポートされていません (NVIDIA ドライバの場合は、もはやその限りではありません、以下の [[#PRIME レンダーオフロード]] を参照)。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
例:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --setprovideroffloadsink radeon Intel&lt;br /&gt;
&lt;br /&gt;
プロバイダ名の代わりにプロバイダのインデックスを使うこともできます:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --setprovideroffloadsink 1 0&lt;br /&gt;
&lt;br /&gt;
=== オープンソースドライバの場合 - PRIME ===&lt;br /&gt;
&lt;br /&gt;
ディスクリートカードを最も必要とするアプリケーション (例: ゲーム、3D モデラー) にそのカードを使わせるには、{{ic|1=DRI_PRIME=1}} 環境変数を (コマンドの) 先頭に追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=$ DRI_PRIME=1 glxinfo {{!}} grep &amp;quot;OpenGL renderer&amp;quot;|2=&lt;br /&gt;
OpenGL renderer string: Gallium 0.4 on AMD TURKS&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|数値の代わりに PCI デバイス名を指定することもできます。形式は {{ic|/sys/bus/pci/devices/}} と似たものが使用されますが、{{ic|pci-}} というプレフィックスが付け、セミコロンとドットはアンダースコアに置き換えてください。例えば、{{ic|1=DRI_PRIME=pci-0000_01_00_0}}。}}&lt;br /&gt;
&lt;br /&gt;
他のアプリケーションは、電力消費量の小さい統合カードを依然として使用します。これらの設定は、X サーバが再起動すると失われてしまいます。スクリプトを作成し、デスクトップ環境の起動時に自動的に実行されるようにすると良いかもしれません (あるいは、コードを {{ic|/etc/X11/xinit/xinitrc.d/}} に配置する)。しかし、これによりバッテリーの寿命が縮み、発熱が増えるかもしれません。&lt;br /&gt;
&lt;br /&gt;
詳細は [[Gentoo:AMDGPU#Test, if a discrete graphics card is in use]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|DRI_PRIME}} を Vulkan アプリケーションで機能させるには、{{Pkg|vulkan-mesa-layers}} と、32 ビットアプリケーション用に {{Pkg|lib32-vulkan-mesa-layers}} をインストールする必要があります。&lt;br /&gt;
&lt;br /&gt;
=== PRIME レンダーオフロード ===&lt;br /&gt;
&lt;br /&gt;
NVIDIA ドライバは、[https://download.nvidia.com/XFree86/Linux-x86_64/435.17/README/primerenderoffload.html バージョン 435.17]以降、この方法をサポートしています。modesetting ({{Pkg|xf86-video-amdgpu}} (450.57)) と {{Pkg|xf86-video-intel}} (455.38) が iGPU ドライバとして公式にサポートされています。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|nvidia-prime}} によって提供されている {{ic|prime-run}} スクリプトを使うことで、NVIDIA カード上でプログラムを実行することができます:&lt;br /&gt;
&lt;br /&gt;
 $ prime-run glxinfo | grep &amp;quot;OpenGL renderer&amp;quot;&lt;br /&gt;
 $ prime-run vulkaninfo&lt;br /&gt;
&lt;br /&gt;
==== PCI-Express Runtime D3 (RTD3) Power Management ====&lt;br /&gt;
&lt;br /&gt;
===== オープンソースドライバ =====&lt;br /&gt;
&lt;br /&gt;
カーネルの PCI 電源管理は、PRIME オフロードや reverse PRIME が使用されていない時、GPU をオフにします。&lt;br /&gt;
この機能は modesetting、{{Pkg|xf86-video-amdgpu}}、{{Pkg|xf86-video-intel}}、{{Pkg|xf86-video-nouveau}} ドライバによってサポートされています。&lt;br /&gt;
&lt;br /&gt;
以下のコマンドにより、各 GPU の現在の[https://docs.kernel.org/power/pci.html#native-pci-power-management 電源状態]を確認することができます:&lt;br /&gt;
 $ cat /sys/class/drm/card*/device/power_state&lt;br /&gt;
&lt;br /&gt;
===== NVIDIA =====&lt;br /&gt;
&lt;br /&gt;
{{Note|Ampere の場合は、この設定がデフォルトで有効化されているので、一般的に設定は必要ありません。一部の Ampere ユーザは、udev ルールが必要かもしれません。}}&lt;br /&gt;
&lt;br /&gt;
Intel Coffee Lake 以降の CPU や (5800H などの) 一部の Ryzen CPU と、Turing 世代のカードの組み合わせの場合、[https://us.download.nvidia.com/XFree86/Linux-x86_64/525.89.02/README/dynamicpowermanagement.html GPU が使用されていないときに電源を完全に落とす]ことができます。&lt;br /&gt;
&lt;br /&gt;
以下の [[udev]] ルールと:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/udev/rules.d/80-nvidia-pm.rules|2=&lt;br /&gt;
# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind&lt;br /&gt;
ACTION==&amp;quot;bind&amp;quot;, SUBSYSTEM==&amp;quot;pci&amp;quot;, ATTR{vendor}==&amp;quot;0x10de&amp;quot;, ATTR{class}==&amp;quot;0x030000&amp;quot;, TEST==&amp;quot;power/control&amp;quot;, ATTR{power/control}=&amp;quot;auto&amp;quot;&lt;br /&gt;
ACTION==&amp;quot;bind&amp;quot;, SUBSYSTEM==&amp;quot;pci&amp;quot;, ATTR{vendor}==&amp;quot;0x10de&amp;quot;, ATTR{class}==&amp;quot;0x030200&amp;quot;, TEST==&amp;quot;power/control&amp;quot;, ATTR{power/control}=&amp;quot;auto&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind&lt;br /&gt;
ACTION==&amp;quot;unbind&amp;quot;, SUBSYSTEM==&amp;quot;pci&amp;quot;, ATTR{vendor}==&amp;quot;0x10de&amp;quot;, ATTR{class}==&amp;quot;0x030000&amp;quot;, TEST==&amp;quot;power/control&amp;quot;, ATTR{power/control}=&amp;quot;on&amp;quot;&lt;br /&gt;
ACTION==&amp;quot;unbind&amp;quot;, SUBSYSTEM==&amp;quot;pci&amp;quot;, ATTR{vendor}==&amp;quot;0x10de&amp;quot;, ATTR{class}==&amp;quot;0x030200&amp;quot;, TEST==&amp;quot;power/control&amp;quot;, ATTR{power/control}=&amp;quot;on&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
以下の[[モジュールパラメータ]]が必要です:&lt;br /&gt;
&lt;br /&gt;
{{hc|/etc/modprobe.d/nvidia-pm.conf|2=&lt;br /&gt;
options nvidia &amp;quot;NVreg_DynamicPowerManagement=0x02&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
あるいは、これら2つの設定ファイルを提供する {{AUR|nvidia-prime-rtd3pm}} をインストールすることもできます。&lt;br /&gt;
&lt;br /&gt;
先の [[udev]] ルールと[[モジュールパラメータ]]を手動あるいは AUR パッケージで設定したら、ノート PC を再起動する必要があります。&lt;br /&gt;
&lt;br /&gt;
以下のコマンドで、NVIDIA GPU がオフになっているかどうか確かめることができます:&lt;br /&gt;
&lt;br /&gt;
 $ cat /sys/bus/pci/devices/0000:01:00.0/power/runtime_status&lt;br /&gt;
&lt;br /&gt;
{{ic|suspended}} か {{ic|running}} のどちらかが表示されます。{{ic|suspended}} が表示されたら、GPU がオフになっています。これで、GPU の電力消費は 0 ワットになり、バッテリーがより長持ちするようになります。&lt;br /&gt;
&lt;br /&gt;
また、NVIDIA デバイスのリソースが利用されなくなったときにカーネルがデバイスの状態を破壊することを防ぐために、{{ic|nvidia-persistenced.service}} を[[有効化]]する必要があります。[https://us.download.nvidia.com/XFree86/Linux-x86_64/465.27/README/nvidia-persistenced.html]&lt;br /&gt;
&lt;br /&gt;
==== GPU を使ってレンダリングするようにアプリケーションを設定する ====&lt;br /&gt;
&lt;br /&gt;
Dynamic Power Management を有効化せずとも、アプリケーションのオフロードレンダリングが必要です。[https://web.archive.org/web/20211203072304/https://jeansenvaars.wordpress.com/2021/12/02/endeavouros-hybrid-gpu-benchmarks/]&lt;br /&gt;
&lt;br /&gt;
Dynamic Power Management を有効にして NVIDIA GPU にオフロードしてアプリケーションを実行するには、以下の[[環境変数]]を追加してください: [https://download.nvidia.com/XFree86/Linux-x86_64/435.17/README/primerenderoffload.html]&lt;br /&gt;
&lt;br /&gt;
 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia &#039;&#039;command&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Steam]] ゲームで使用する際は、ランチャーコマンドラインを以下のように設定することができます:&lt;br /&gt;
&lt;br /&gt;
 __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia %command%&lt;br /&gt;
&lt;br /&gt;
{{Note|__NV_PRIME_RENDER_OFFLOAD の値は、システムによっては 0 に設定する必要があります。この変数はどの GPU を使用するかを指定するので、どの GPU が 0 で、どれが 1 かを確認しておくことが推奨されます。}}&lt;br /&gt;
&lt;br /&gt;
==== Gnome 統合 ====&lt;br /&gt;
&lt;br /&gt;
GNOME 統合に関しては、{{Pkg|switcheroo-control}} を[[インストール]]し、{{ic|switcheroo-control.service}} を[[有効化]]してください。&lt;br /&gt;
&lt;br /&gt;
GNOME は [[デスクトップエントリ]] の {{ic|PrefersNonDefaultGPU}} プロパティに従います。あるいは、アイコンを右クリックし {{ic|Launch using Discrete Graphics Card}} を選択することで、アプリケーションを GPU で実行することが可能です。&lt;br /&gt;
&lt;br /&gt;
==== トラブルシューティング ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|bumblebee}} がインストールされている場合、このパッケージは、X サーバがオフロードのために NVIDIA ドライバをロードする際に必要な {{ic|nvidia_drm}} ドライバをブラックリストに追加するので、削除する必要があります。&lt;br /&gt;
&lt;br /&gt;
=== PRIME 同期 ===&lt;br /&gt;
&lt;br /&gt;
PRIME を使用している時、プライマリ GPU がスクリーンのコンテンツおよびアプリケーションをレンダリングし、その結果を表示用のセカンダリ GPU に渡します。[https://forums.developer.nvidia.com/t/prime-and-prime-synchronization/44423 とある NVIDIA のスレッド]を引用すると、(日本語訳)「従来の垂直同期は、アプリケーションのレンダリングとシステムメモリへのコピーを同期させることができます。しかし、システムメモリへのコピーと iGPU のディスプレイエンジンとを同期させるには、追加のメカニズムが必要になります。そのようなメカニズムは、従来の垂直同期とは異なり、dGPU のドライバと iGPU のドライバ間でコミュニケーションを取る必要があります。」&lt;br /&gt;
&lt;br /&gt;
この同期は、PRIME 同期を使用して達成されます。PRIME 同期は、ディスプレイに対して有効化されます。{{ic|xrandr --prop}} の出力を確認してください。&lt;br /&gt;
&lt;br /&gt;
有効化するには、以下を実行してください:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --output &amp;lt;output-name&amp;gt; --set &amp;quot;PRIME Synchronization&amp;quot; 1&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* NVIDIA ドライバを用いる PRIME 同期の前提条件として、[[NVIDIA#DRM カーネルモード設定|モード設定が有効化されている]]というものがあります。&lt;br /&gt;
* PRIME 同期は、[[AMDGPU]] DDX ドライバ ({{Pkg|xf86-video-amdgpu}}) では利用できません。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== Wayland 固有の設定 ===&lt;br /&gt;
&lt;br /&gt;
Wayland は Xorg よりも設定が少なくて済みます。また、[https://invent.kde.org/plasma/kwin/-/merge_requests/811 KDE の KWin] や GNOME の Mutter には GPU ホットプラグの予備的サポートも存在するようです ([https://gitlab.gnome.org/GNOME/mutter/-/issues/17 Issue 17] と[https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1562 マージリクエスト 1562])。&lt;br /&gt;
&lt;br /&gt;
ディスクリートカードを使用するには、{{ic|1=DRI_PRIME=}} [[環境変数]]を (コマンドの) 先頭に追加してください。以下の例では、システムに Intel 統合カード、NVIDIA 外部 GPU、そして AMD 外部 GPU が存在すると仮定します。&lt;br /&gt;
&lt;br /&gt;
統合 Intel チップを使用する場合、変更は必要ありません。それがすでにデフォルトであるからです:&lt;br /&gt;
&lt;br /&gt;
{{hc|glxinfo {{!}} grep &#039;OpenGL renderer&#039;|&lt;br /&gt;
OpenGL renderer string: Mesa Intel(R) Xe Graphics (TGL GT2)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
AMD カードをオープンソースドライバで使用する場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=DRI_PRIME=pci-0000_06_00_0 glxinfo {{!}} grep &#039;OpenGL renderer&#039;|2=&lt;br /&gt;
OpenGL renderer string: AMD Radeon RX 5700 XT (navi10, LLVM 14.0.6, DRM 3.46, 5.18.17-hardened1-1-hardened)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
NVIDIA カードをプロプライエタリドライバで使用する場合:&lt;br /&gt;
&lt;br /&gt;
{{hc|1=DRI_PRIME=pci-0000_01_00_0 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo {{!}} grep &#039;OpenGL renderer string&#039;|2=&lt;br /&gt;
OpenGL renderer string: NVIDIA GeForce RTX 3050 Ti Laptop GPU/PCIe/SSE2&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Wayland では、複数の GPU を同時に同じマシン上で使用することができます。&lt;br /&gt;
&lt;br /&gt;
{{Note|外部 GPU のホットプラグは制限付きで有効化されます: 正しいカーネルモジュールをロードするには再ログインが必須です。}}&lt;br /&gt;
&lt;br /&gt;
PRIME に関する mesa3d ドキュメントを参照: https://docs.mesa3d.org/envvars.html&lt;br /&gt;
&lt;br /&gt;
すべての Xwayland アプリケーションは、Xorg で行うように、特に設定せずに動作するはずです。しかし、ドライババージョン 525.85 現在、[[NVIDIA#DRM カーネルモード設定|modesetting]] が有効化されている場合、ネイティブな Wayland アプリケーションは、OpenGL のみが動作します。&lt;br /&gt;
&lt;br /&gt;
Vulkan の Wayland アプリケーションは、NVIDIA ドライバが Intel や AMD の GPU には理解できないハードウェア固有のピクセルレイアウトを使用しているため、ウィンドウが見えなくなり、場合によってはクラッシュするかもしれません。詳細は NVIDIA の [https://github.com/NVIDIA/egl-wayland/issues/72 GitHub issue 72] を参照。&lt;br /&gt;
&lt;br /&gt;
== Reverse PRIME ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* NVIDIA ドライバ 470 ベータより前では、Reverse PRIME は AMDGPU + NVIDIA の組み合わせの場合サポートされません。詳細は [https://forums.developer.nvidia.com/t/hp-omen-15-ryzen-4600h-nvidia-1660ti-no-display-over-hdmi/165265/2] を参照してください。古いバージョンの代替策として、[[#ディスクリートカードをプライマリ GPU にする]] で説明されているように NVIDIA をプライマリカードとして使用するという方法があります。&lt;br /&gt;
* 現在、外部ディスプレイのみが有効化されている時に FPS がたったの 1 になってしまいます。詳細は [https://gitlab.freedesktop.org/xorg/xserver/-/issues/1028] を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
2つ目の GPU がプライマリ GPU によってアクセスできない出力を行う場合、&#039;&#039;&#039;Reverse PRIME&#039;&#039;&#039; を使うことでその出力を使用することができます。この方法は、プライマリ GPU を使ってイメージをレンダリングし、その結果を2つ目の GPU に渡します。&lt;br /&gt;
&lt;br /&gt;
設定せずに動作する場合もありますが、そうでない場合、以下のステップを踏んでください。&lt;br /&gt;
&lt;br /&gt;
=== 設定 ===&lt;br /&gt;
&lt;br /&gt;
まず、統合 GPU の BusID を特定してください:&lt;br /&gt;
{{hc|lspci {{!}} grep VGA|&lt;br /&gt;
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)&lt;br /&gt;
01:00.0 VGA compatible controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
上記の例では、Intel カードは 00:02.0 であり、これは PCI:0:2:0 に変換されます。&lt;br /&gt;
&lt;br /&gt;
以下のように xorg.conf をセットアップし、BusID を変更してください。&lt;br /&gt;
{{hc|/etc/X11/xorg.conf|&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;layout&amp;quot;&lt;br /&gt;
        Screen 0 &amp;quot;intel&amp;quot;&lt;br /&gt;
        Inactive &amp;quot;nvidia&amp;quot;&lt;br /&gt;
        Option &amp;quot;AllowNVIDIAGPUScreens&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;nvidia&amp;quot;&lt;br /&gt;
        Driver &amp;quot;nvidia&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;nvidia&amp;quot;&lt;br /&gt;
        Device &amp;quot;nvidia&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;intel&amp;quot;&lt;br /&gt;
        Driver &amp;quot;modesetting&amp;quot;&lt;br /&gt;
        BusID &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
        Identifier &amp;quot;intel&amp;quot;&lt;br /&gt;
        Device &amp;quot;intel&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
コマンド {{ic|xrandr --setprovideroutputsource provider source}} は、ソースの出力としてのプロバイダを設定します。例:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --setprovideroutputsource radeon Intel&lt;br /&gt;
&lt;br /&gt;
これが終わったら、ディスクリートカードの出力が xrandr で利用可能になっているはずです。以下のようなことができるようになります:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --output HDMI-1 --auto --above LVDS1&lt;br /&gt;
&lt;br /&gt;
これは、内部ディスプレイと外部ディスプレイの両方を設定します。&lt;br /&gt;
&lt;br /&gt;
=== 問題 ===&lt;br /&gt;
&lt;br /&gt;
再起動した後にプロバイダが1つしか無い場合、それはおそらく Xorg が起動した時に {{ic|nvidia}} モジュールがまだロードされていないからです。早期モジュールロードを有効化する必要があります。詳細は [[NVIDIA#早期ロード]] を参照。&lt;br /&gt;
&lt;br /&gt;
== ユーザのシナリオ ==&lt;br /&gt;
&lt;br /&gt;
=== ディスクリートカードをプライマリ GPU にする ===&lt;br /&gt;
&lt;br /&gt;
次のようなシナリオを考えてみてください: LVDS1 (ノートパソコンの内蔵スクリーン) と VGA 出力の両方とも内蔵の Intel GPU からしかアクセスできず、ディスクリートの NVIDIA カードには HDMI と DisplayPort 端子が付いている。上述の [[#Reverse PRIME]] テクノロジーを使うことで4つの出力を全て使うことはできますが、どの出力も内蔵の Intel カードによって作成されるためパフォーマンスが遅くなります。このような状況を改善する方法として、ディスクリートの NVIDIA カードでレンダリングを行なってから、フレームバッファを Intel カードの LVDS1 と VGA 出力にコピーすることが可能です。&lt;br /&gt;
&lt;br /&gt;
以下の Xorg 設定を作成してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;lt;nowiki&amp;gt;/etc/X11/xorg.conf.d/10-gpu.conf&amp;lt;/nowiki&amp;gt;|&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;layout&amp;quot;&lt;br /&gt;
    Screen 0 &amp;quot;nouveau&amp;quot;&lt;br /&gt;
    Inactive &amp;quot;intel&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
    Identifier  &amp;quot;nouveau&amp;quot;&lt;br /&gt;
    Driver      &amp;quot;nouveau&amp;quot;&lt;br /&gt;
    BusID       &amp;quot;PCI:x:x:x&amp;quot; # Sample: &amp;quot;PCI:1:0:0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;nouveau&amp;quot;&lt;br /&gt;
    Device &amp;quot;nouveau&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Device&amp;quot;&lt;br /&gt;
    Identifier  &amp;quot;intel&amp;quot;&lt;br /&gt;
    Driver      &amp;quot;intel&amp;quot;&lt;br /&gt;
    BusID       &amp;quot;PCI:x:x:x&amp;quot;  # Sample: &amp;quot;PCI:0:2:0&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
&lt;br /&gt;
Section &amp;quot;Screen&amp;quot;&lt;br /&gt;
    Identifier &amp;quot;intel&amp;quot;&lt;br /&gt;
    Device &amp;quot;intel&amp;quot;&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Note|プロプライエタリの NVIDIA ドライバーの場合、代わりに [https://us.download.nvidia.com/XFree86/Linux-x86_64/450.57/README/randr14.html] を見てください。}}&lt;br /&gt;
&lt;br /&gt;
Xorg を再起動してください。ディスクリートの NVIDIA カードが使われるようになっているはずです。HDMI と DisplayPort がメインの出力で LVDS1 と VGA の出力はオフになります。有効にするには次を実行:&lt;br /&gt;
&lt;br /&gt;
 $ xrandr --setprovideroutputsource Intel nouveau&lt;br /&gt;
&lt;br /&gt;
上記のコマンドで xrandr でディスクリートの出力端子が使えるようになります。&lt;br /&gt;
&lt;br /&gt;
{{Note|NVIDIA がスクリーンのレンダリングに使用されている場合、スクロールが遅くなったり、スクリーンのティアリングが発生したりする場合があります。これを軽減する方法については [[NVIDIA/トラブルシューティング#画面のティアリングを抑える]] を確認してください。}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
{{Accuracy|このセクション内の回避策の根拠となるソースが存在しません。}}&lt;br /&gt;
&lt;br /&gt;
=== XRandR の出力プロバイダを1つだけに指定する ===&lt;br /&gt;
&lt;br /&gt;
/etc/X11/xorg.conf ファイルおよび /etc/X11/xorg.conf.d/ の GPU に関連するその他のファイルを削除します。この変更後、X サーバを再起動します。&lt;br /&gt;
&lt;br /&gt;
ビデオドライバが {{ic|/etc/modprobe.d/}} にブラックリスト登録されている場合は、モジュールをロードして X を再起動します。NVIDIA GPU 用に bbswitch モジュールを使用している場合は、この問題が発生する可能性があります。&lt;br /&gt;
&lt;br /&gt;
もう1つ考えられる問題は、Xorg が2台目の GPU にモニタを自動的に割り当てようとする可能性があることです。ログを確認してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;lt;nowiki&amp;gt;$ grep &amp;quot;No modes&amp;quot; ~/.local/share/xorg/Xorg.0.log&amp;lt;/nowiki&amp;gt;|&lt;br /&gt;
AMDGPU(0): No modes.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
これを解決するには、xorg.conf に非アクティブなデバイスの ServerLayout セクションを追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;lt;nowiki&amp;gt;/etc/X11/xorg.conf&amp;lt;/nowiki&amp;gt;|&lt;br /&gt;
Section &amp;quot;ServerLayout&amp;quot;&lt;br /&gt;
  Identifier     &amp;quot;X.org Configured&amp;quot;&lt;br /&gt;
  Screen      0  &amp;quot;Screen0&amp;quot; 0 0 # Screen for your primary GPU&lt;br /&gt;
  Inactive       &amp;quot;Card1&amp;quot;       # Device for your second GPU&lt;br /&gt;
EndSection&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ディスクリートカードを使ってアプリケーションをレンダリングした場合に、黒画面しか表示されない ===&lt;br /&gt;
&lt;br /&gt;
場合によって PRIME を使うにはコンポジットマネージャが必要になることがあります。ウィンドウマネージャがコンポジットを行わない場合、ウィンドウマネージャに加えて [[xcompmgr]] を使用してください。&lt;br /&gt;
&lt;br /&gt;
Xfce を使用しているならば &#039;&#039;Menu &amp;gt; Settings &amp;gt; Window Manager Tweaks &amp;gt; Compositor&#039;&#039; からコンポジットを有効にできます。有効にした後にアプリケーションを実行してみてください。&lt;br /&gt;
&lt;br /&gt;
==== GL ベースのコンポジタで黒画面が表示される ====&lt;br /&gt;
&lt;br /&gt;
GL ベースのコンポジタと PRIME オフロードの組み合わせには問題が存在します。Xrender ベースのコンポジタ (xcompmgr, xfwm, picom のデフォルトバックエンド, cairo-compmgr など) に問題は起こりませんが、GL ベースのコンポジタ (Mutter/muffin, Compiz, GLX バックエンドの picom, Kwin の OpenGL バックエンドなど) では、まるでコンポジタが動いていないかのように黒画面が表示されます。オフロードしたウィンドウのサイズを変更することで画像を表示させることはできますが、フルスクリーンの Wine アプリケーションなどではどうしようもありません。GL ベースのコンポジタを使っている GNOME3 や Cinnamon などのデスクトップ環境でも PRIME オフロードを使用した場合に問題が発生します。&lt;br /&gt;
&lt;br /&gt;
さらに、Intel IGP を使用している場合、IGP で SNA ではなく UXA を使うことで GL コンポジットの問題を解決できることがありますが、オフロードに問題を起こしてしまうこともあります ({{ic|xrandr --listproviders}} でディスクリート GPU が表示されない)。&lt;br /&gt;
&lt;br /&gt;
詳しくは [https://bugs.freedesktop.org/show_bug.cgi?id=69101 FDO Bug #69101] を参照。&lt;br /&gt;
&lt;br /&gt;
この問題に対する他の方法として、Intel ドライバで DRI3 を有効化するというものがあります。設定例は以下を見てください。&lt;br /&gt;
&lt;br /&gt;
===== GNOME =====&lt;br /&gt;
&lt;br /&gt;
[[GNOME/トラブルシューティング#Intel HD Graphics のティアリング解消|fullscreen undirect を無効化する]]ことでフルスクリーンアプリケーションにおける PRIME オフロードが正しく機能するかもしれません。&lt;br /&gt;
&lt;br /&gt;
=== PRIME を使用してウィンドウやワークスペースを切り替えたときにカーネルがクラッシュする ===&lt;br /&gt;
&lt;br /&gt;
{{Note|Intel + AMD の環境で確認済みです。}}&lt;br /&gt;
&lt;br /&gt;
内蔵カードの設定ファイルで DRI3 を使うようにすることで問題が解決します。&lt;br /&gt;
&lt;br /&gt;
DRI3 を有効にするには、内蔵カードの設定に DRI3 オプションを追加してください:&lt;br /&gt;
&lt;br /&gt;
 Section &amp;quot;Device&amp;quot;&lt;br /&gt;
     Identifier &amp;quot;Intel Graphics&amp;quot;&lt;br /&gt;
     Driver &amp;quot;intel&amp;quot;&lt;br /&gt;
     Option &amp;quot;DRI&amp;quot; &amp;quot;3&amp;quot;&lt;br /&gt;
 EndSection&lt;br /&gt;
&lt;br /&gt;
上記の設定をした後、DRI_PRIME=1 を使うことで DRI3 がオフロードを行うようになります。{{ic|xrandr --setprovideroffloadsink radeon Intel}} を実行する必要はありません。&lt;br /&gt;
&lt;br /&gt;
=== Reverse PRIME を使用した場合にセカンドモニタで焼きつきなどの同期の問題が発生する ===&lt;br /&gt;
&lt;br /&gt;
[[i3]] などのウィンドウマネージャで[[コンポジットマネージャ]]を使わないとこの問題が発生します [https://bugs.freedesktop.org/show_bug.cgi?id=75579]。&lt;br /&gt;
&lt;br /&gt;
GNOME で問題が発生するときは、{{ic|/etc/environment}} で以下の環境変数を設定してみてください [https://bbs.archlinux.org/viewtopic.php?id=177925]:&lt;br /&gt;
&lt;br /&gt;
 CLUTTER_PAINT=disable-clipped-redraws:disable-culling&lt;br /&gt;
 CLUTTER_VBLANK=True&lt;br /&gt;
&lt;br /&gt;
=== GL アプリケーションを起動したときにエラー: &amp;quot;radeon: Failed to allocate virtual address for buffer:&amp;quot; ===&lt;br /&gt;
&lt;br /&gt;
カーネルドライバーの電源管理が実行されているときに発生するエラーです。&lt;br /&gt;
ブートローダーのカーネルパラメータに {{ic|1=radeon.runpm=0}} を追加することでエラーを抑えることができます。&lt;br /&gt;
&lt;br /&gt;
=== VSync とクローズドソースのドライバと reverse PRIME を使用した Vulkan アプリケーション/ゲームでハング/フリーズが発生する ===&lt;br /&gt;
&lt;br /&gt;
一部の Vulkan アプリケーション (特に VK_PRESENT_MODE_FIFO_KHR や VK_PRESENT_MODE_FIFO_RELAXED_KHR を使用しているもの、DXVK で実行される Windows ゲームを含む) は、&#039;&#039;&#039;reverse PRIME&#039;&#039;&#039; を使用するシステムで実行すると、GPU が常に (約5~10秒間隔でフリーズ、約1秒は正常に動作する) [https://devtalk.nvidia.com/default/topic/1044496/linux/hangs-freezes-when-vulkan-v-sync-vk_present_mode_fifo_khr-is-enabled/] を繰り返したりします&lt;br /&gt;
&lt;br /&gt;
GPU がハングアップすると、すべての入力が使用できなくなります (これには TTY の切り替えと SysRq 機能の使用が含まれます) 。&lt;br /&gt;
&lt;br /&gt;
この NVIDIA バグに対する解決策は知られていませんが、いくつかの回避策は存在します:&lt;br /&gt;
* Vsync をオフにする (一部のアプリケーションでは不可能)&lt;br /&gt;
* PRIME Synchronization [https://devtalk.nvidia.com/default/topic/957814/linux/prime-and-prime-synchronization/] をオフにする (画面のティアリングが発生してしまう):&lt;br /&gt;
 xrandr --output HDMI-0 --set &amp;quot;PRIME Synchronization&amp;quot; 0 #replace HDMI-0 with your xrandr output ID&lt;br /&gt;
&lt;br /&gt;
{{Pkg|vulkan-tools}} パッケージの {{ic|vkcube}} を実行するだけで、使用している構成がこの問題の影響を受けているかどうかを確認できます。&lt;br /&gt;
&lt;br /&gt;
=== 一部のプログラムが Wayland で開く時に遅延する ===&lt;br /&gt;
&lt;br /&gt;
([[#NVIDIA]] の) RTD3 が動作している場合、Wayland を使用していると、一部のプログラムを開く際に遅延が発生します。これは、RTD3 がまず先に GPU をオンにしようとし (これには約1秒以上かかります)、その後でプログラムを開こうとするためです。これは NVIDIA ドライバの問題です。[https://bbs.archlinux.org/viewtopic.php?pid=2094847#p2094847]&lt;br /&gt;
&lt;br /&gt;
この問題を解決するには、以下を {{ic|/etc/environment}} ファイルに追加してください:&lt;br /&gt;
&lt;br /&gt;
{{hc|&amp;lt;nowiki&amp;gt;/etc/environment&amp;lt;/nowiki&amp;gt;|2=&lt;br /&gt;
export __EGL_VENDOR_LIBRARY_FILENAMES=&amp;quot;/usr/share/glvnd/egl_vendor.d/50_mesa.json&amp;quot;&lt;br /&gt;
export __GLX_VENDOR_LIBRARY_NAME=&amp;quot;mesa&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== DXVK で Wine のゲームを実行するとエラー ===&lt;br /&gt;
&lt;br /&gt;
PRIME オフロードを使用している場合、{{ic|Major opcode of failed request: 156 (NV-GLX)}} というエラーが発生する既知の問題があります。唯一知られている回避策は、X セッションを[[NVIDIA Optimus#NVIDIA グラフィックスのみを使う|完全に NVIDIA GPU 上で]]起動させることです。NVIDIA のみのモードと PRIME オフロードを切り替えるユーザフレンドリーな方法は、[[NVIDIA Optimus#optimus-manager を使う|optimus-manager]] ユーティリティです。これを使わない場合は、自身で何らかの自動化スクリプトを書くことになります。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://wiki.freedesktop.org/nouveau/Optimus/ Nouveau Optimus]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|PRIME|2023-09-10|786890}}&lt;/div&gt;</summary>
		<author><name>Akku</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=GPGPU&amp;diff=40359</id>
		<title>GPGPU</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=GPGPU&amp;diff=40359"/>
		<updated>2025-06-05T05:29:24Z</updated>

		<summary type="html">&lt;p&gt;Akku: 同期&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}}: [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|834566}}&lt;/div&gt;</summary>
		<author><name>Akku</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%93%E3%83%87%E3%82%AA%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&amp;diff=39472</id>
		<title>ハードウェアビデオアクセラレーション</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%8F%E3%83%BC%E3%83%89%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%93%E3%83%87%E3%82%AA%E3%82%A2%E3%82%AF%E3%82%BB%E3%83%A9%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3&amp;diff=39472"/>
		<updated>2025-01-08T14:13:06Z</updated>

		<summary type="html">&lt;p&gt;Akku: 翻訳ミスと思われる箇所を修正: 「Hybrid VP8 エンコーダと VP9 エンコーダ」 -&amp;gt; 「Hybrid VP8 エンコーダと VP9 デコーダ」&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:グラフィックス]]&lt;br /&gt;
[[Category:X サーバー]]&lt;br /&gt;
[[en:Hardware video acceleration]]&lt;br /&gt;
[[ru:Hardware video acceleration]]&lt;br /&gt;
[[zh-hans:Hardware video acceleration]]&lt;br /&gt;
[[Wikipedia:Graphics processing unit#GPU accelerated video decoding and encoding|ハードウェアビデオアクセラレーション]]により、ビデオカードで動画をデコード/エンコードすることができ、CPU の負担を下げて電力を節約することができます。&lt;br /&gt;
&lt;br /&gt;
Linux でこれを実現する方法は複数存在します:&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:Video Acceleration API|Video Acceleration API]] (VA-API) はハードウェア支援による動画エンコード・デコードの両方を実現する仕様とオープンソースライブラリです。Intel によって開発されました。&lt;br /&gt;
* [[Wikipedia:VDPAU|Video Decode and Presentation API for Unix]] (VDPAU) は GPU ビデオハードウェアに動画のデコードやポストプロセス処理をオフロードするオープンソースのライブラリです。NVIDIA によって開発されました。&lt;br /&gt;
* [https://gpuopen.com/advanced-media-framework/ Advanced Media Framework SDK] (AMF) は、[[AMDGPU PRO]] を使用してマルチメディア処理のために AMD GPU に「部分的に」アクセスできるようにするオープンソースのフレームワークです。AMD によって開発されました。&lt;br /&gt;
* [[Wikipedia:Nvidia NVDEC|NVDEC]]/[[Wikipedia:Nvidia NVENC|NVENC]] - Fermi 以降の NVIDIA GPU によって使われている、ハードウェアビデオアクセラレーションのためのプロプライエタリ API。&lt;br /&gt;
&lt;br /&gt;
ドライバとアプリケーションのサポートの包括的な概要については、[[#比較一覧]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
&lt;br /&gt;
[[Intel Graphics]] オープンソースドライバーは VA-API に対応しています:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/intel/media-driver/#supported-platforms Broadwell] [[wikipedia:Template:Intel_processor_roadmap|(2014)]] 及びそれ以降の HD Graphics シリーズ (例: Intel Arc) は {{Pkg|intel-media-driver}} によってサポートされています。&lt;br /&gt;
* [[wikipedia:Coffee_Lake|Coffee Lake]] (2017) までの GMA 4500 (2008) は {{Pkg|libva-intel-driver}} によってサポートされています。&lt;br /&gt;
* GMA 4500 の H.264 デコードは {{AUR|libva-intel-driver-g45-h264}} によってサポートされています。[[Intel Graphics#GMA 4500 での H.264 デコードのハードウェアアクセラレーション]] を参照。&lt;br /&gt;
* [[Wikipedia:Haswell (microarchitecture)#Haswell Refresh|Haswell Refresh]] から Skylake までの VP9 デコードと、Broadwell から Skylake までのハイブリッド VP8 エンコードは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。&lt;br /&gt;
* Skylake 及びそれ以降は {{Pkg|linux-firmware}} も必要です。&lt;br /&gt;
&lt;br /&gt;
[https://www.intel.com/content/www/us/en/developer/articles/technical/linuxmedia-vaapi.html VAAPI がサポートするハードウェアと機能] もご覧ください。&lt;br /&gt;
&lt;br /&gt;
=== NVIDIA ===&lt;br /&gt;
&lt;br /&gt;
[[Nouveau]] オープンソースドライバーは VA-API と VDPAU に対応しています:&lt;br /&gt;
&lt;br /&gt;
* GeForce GTX 750 までの GeForce 8 シリーズ及びそれ以降の GPU は {{Pkg|mesa}} によってサポートされています。&lt;br /&gt;
* (現在 NVIDIA のバイナリドライバーから抽出される) {{AUR|nouveau-fw}} ファームウェアパッケージが [https://nouveau.freedesktop.org/wiki/VideoAcceleration/#firmware 必要] です。&lt;br /&gt;
&lt;br /&gt;
[[NVIDIA]] プロプライエタリドライバは {{Pkg|nvidia-utils}} によってサポートされています:&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:GeForce 8 series|GeForce 8 シリーズ]]及びそれ以降の GPU における VDPAU&lt;br /&gt;
* [[Wikipedia:Fermi_(microarchitecture)|Fermi]] 及びそれ以降の GPU における NVDEC [https://developer.download.nvidia.com/assets/cuda/files/NVIDIA_Video_Decoder.pdf]&lt;br /&gt;
* [[Wikipedia:Kepler_(microarchitecture)|Kepler]] 及びそれ以降の GPU における NVENC&lt;br /&gt;
&lt;br /&gt;
=== AMD/ATI ===&lt;br /&gt;
&lt;br /&gt;
[[AMD]] と [[ATI]] オープンソースドライバーは {{Pkg|mesa}} によって VA-API と VDPAU をサポートしています:&lt;br /&gt;
&lt;br /&gt;
* VA-API は Radeon HD 2000 及びそれ以降の GPU。&lt;br /&gt;
* VDPAU は Radeon R600 及びそれ以降の GPU。&lt;br /&gt;
&lt;br /&gt;
[[AMDGPU PRO]] プロプライエタリドライバーは AMDGPU ドライバー上で動作し、AMF に加えて VA-API と VDPAU に対応しています。&lt;br /&gt;
&lt;br /&gt;
* [[Wikipedia:Radeon Rx 300 series|Fiji]] 及びそれ以降の GPU における AMF は {{AUR|amf-amdgpu-pro}} によってサポートされています。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 場合によっては、あなたのアプリケーションが [[AMDGPU PRO]] [[Vulkan]] ドライバを使用するように強制する必要があります。&lt;br /&gt;
* [[Wikipedia:High Efficiency Video Coding|HEVC]] エンコードは [[Wikipedia:Radeon RX 5000 series|Navi]] より古い GPU では利用できない場合があります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 変換レイヤー ===&lt;br /&gt;
&lt;br /&gt;
* {{App|libvdpau-va-gl|OpenGL/VAAPI バックエンドを用いた VDPAU ドライバ。H.264 のみ。|https://github.com/i-rinat/libvdpau-va-gl|{{Pkg|libvdpau-va-gl}}}}&lt;br /&gt;
* {{App|nvidia-vaapi-driver|VA-API を提供する [[CUDA]] NVDEC ベースのバックエンド。|https://github.com/elFarto/nvidia-vaapi-driver/|{{Pkg|libva-nvidia-driver}}}}&lt;br /&gt;
&lt;br /&gt;
{{Note|1=NVIDIA ドライバの 525 シリーズ及びそれ以降にはリグレッションがあり、VA-API が動かなくなります。[https://github.com/elFarto/nvidia-vaapi-driver#upstream-regressions direct-backend] を使用してください。}}&lt;br /&gt;
&lt;br /&gt;
== 確認 ==&lt;br /&gt;
&lt;br /&gt;
設定せずともシステムが完璧に動作する場合があります。なので、このセクションから読み始めて、システムの確認をすると良いでしょう。&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* コマンドラインサポートのある [[mpv#ハードウェアデコード|mpv]] は、ハードウェアアクセラレーションをテストするのにぴったりです。{{ic|1=mpv --hwdec=auto &#039;&#039;video_filename&#039;&#039;}} のログを見てください。詳細は [https://mpv.io/manual/stable/#options-hwdec hwdec] を参照。&lt;br /&gt;
* AMD、Intel、そして NVIDIA の場合、動画を再生しながら {{Pkg|nvtop}} を使うことで &amp;quot;DEC&amp;quot; (デコーダ) の使用率を確認できます。&lt;br /&gt;
* Intel GPU の場合、{{pkg|intel-gpu-tools}} を使って、{{ic|intel_gpu_top}} を root として実行することで、ビデオプレイバック中に GPU 使用率をモニタできます。ビデオバーが 0% よりも上にあれば、GPU のビデオデコーダ/エンコーダが使用されていることを示します。&lt;br /&gt;
* AMD GPU の場合、{{Pkg|radeontop}} を使用して GPU 使用率をモニタできます。{{pkg|intel-gpu-tools}} とは違い、現在 {{Pkg|radeontop}} でデコード/エンコードの仕様状況を確認する方法はありません [https://github.com/clbr/radeontop/issues/29]。&lt;br /&gt;
* 任意の GPU において、{{Pkg|htop}} のようなツールで CPU 使用率を比較できます。特に、高解像度なビデオ (4k 以上) において、VA-API が有効化されていて動作しているときの CPU 使用率は、ノート PC や他の比較的低電力なデバイスにおいて劇的に低いはずです。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== VA-API の確認 ===&lt;br /&gt;
&lt;br /&gt;
VA-API の設定は {{Pkg|libva-utils}} パッケージに含まれている {{ic|vainfo}} を実行することで確認できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ vainfo|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
libva info: VA-API version 0.39.4&lt;br /&gt;
libva info: va_getDriverName() returns 0&lt;br /&gt;
libva info: Trying to open /usr/lib/dri/i965_drv_video.so&lt;br /&gt;
libva info: Found init function __vaDriverInit_0_39&lt;br /&gt;
libva info: va_openDriver() returns 0&lt;br /&gt;
vainfo: VA-API version: 0.39 (libva 1.7.3)&lt;br /&gt;
vainfo: Driver version: Intel i965 driver for Intel(R) Skylake - 1.7.3&lt;br /&gt;
vainfo: Supported profile and entrypoints&lt;br /&gt;
      VAProfileMPEG2Simple            :	VAEntrypointVLD&lt;br /&gt;
      VAProfileMPEG2Simple            :	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileMPEG2Main              :	VAEntrypointVLD&lt;br /&gt;
      VAProfileMPEG2Main              :	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD&lt;br /&gt;
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP&lt;br /&gt;
      VAProfileH264Main               :	VAEntrypointVLD&lt;br /&gt;
      VAProfileH264Main               :	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264Main               :	VAEntrypointEncSliceLP&lt;br /&gt;
      VAProfileH264High               :	VAEntrypointVLD&lt;br /&gt;
      VAProfileH264High               :	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264High               :	VAEntrypointEncSliceLP&lt;br /&gt;
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD&lt;br /&gt;
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileH264StereoHigh         :	VAEntrypointVLD&lt;br /&gt;
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileVC1Simple              :	VAEntrypointVLD&lt;br /&gt;
      VAProfileVC1Main                :	VAEntrypointVLD&lt;br /&gt;
      VAProfileVC1Advanced            :	VAEntrypointVLD&lt;br /&gt;
      VAProfileNone                   :	VAEntrypointVideoProc&lt;br /&gt;
      VAProfileJPEGBaseline           :	VAEntrypointVLD&lt;br /&gt;
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture&lt;br /&gt;
      VAProfileVP8Version0_3          :	VAEntrypointVLD&lt;br /&gt;
      VAProfileVP8Version0_3          :	VAEntrypointEncSlice&lt;br /&gt;
      VAProfileHEVCMain               :	VAEntrypointVLD&lt;br /&gt;
      VAProfileHEVCMain               :	VAEntrypointEncSlice&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
あなたのカードを使ってデコードできるフォーマットが {{ic|VAEntrypointVLD}} で、エンコードできるフォーマットが {{ic|VAEntrypointEncSlice}} で示されます。&lt;br /&gt;
&lt;br /&gt;
上の例では、以下の行があることから {{ic|i965}} ドライバーが使われていることが確認できます:&lt;br /&gt;
&lt;br /&gt;
 vainfo: Driver version: Intel &#039;&#039;&#039;i965&#039;&#039;&#039; driver for Intel(R) Skylake - 1.7.3&lt;br /&gt;
&lt;br /&gt;
{{ic|vainfo}} を実行したときに以下のようなエラーが表示される場合:&lt;br /&gt;
&lt;br /&gt;
 libva info: va_openDriver() returns -1&lt;br /&gt;
 vaInitialize failed with error code -1 (unknown libva error),exit&lt;br /&gt;
&lt;br /&gt;
適切なドライバーを設定する必要があります。[[#VA-API の設定]] を見てください。&lt;br /&gt;
&lt;br /&gt;
=== VDPAU の確認 ===&lt;br /&gt;
&lt;br /&gt;
{{pkg|vdpauinfo}} をインストールしてから、以下のコマンドを実行してください。VDPAU ドライバーがロードされていることや、現在の設定が確認できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ vdpauinfo|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
display: :0   screen: 0&lt;br /&gt;
API version: 1&lt;br /&gt;
Information string: G3DVL VDPAU Driver Shared Library version 1.0&lt;br /&gt;
&lt;br /&gt;
Video surface:&lt;br /&gt;
&lt;br /&gt;
name   width height types&lt;br /&gt;
-------------------------------------------&lt;br /&gt;
420    16384 16384  NV12 YV12&lt;br /&gt;
422    16384 16384  UYVY YUYV&lt;br /&gt;
444    16384 16384  Y8U8V8A8 V8U8Y8A8&lt;br /&gt;
&lt;br /&gt;
Decoder capabilities:&lt;br /&gt;
&lt;br /&gt;
name                        level macbs width height&lt;br /&gt;
----------------------------------------------------&lt;br /&gt;
MPEG1                          --- not supported ---&lt;br /&gt;
MPEG2_SIMPLE                    3  9216  2048  1152&lt;br /&gt;
MPEG2_MAIN                      3  9216  2048  1152&lt;br /&gt;
H264_BASELINE                  41  9216  2048  1152&lt;br /&gt;
H264_MAIN                      41  9216  2048  1152&lt;br /&gt;
H264_HIGH                      41  9216  2048  1152&lt;br /&gt;
VC1_SIMPLE                      1  9216  2048  1152&lt;br /&gt;
VC1_MAIN                        2  9216  2048  1152&lt;br /&gt;
VC1_ADVANCED                    4  9216  2048  1152&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
ビデオドライバは VA-API と VDPAU の両方に対してハードウェアビデオアクセラレーションのサポートを自動的に有効化するはずですが、場合によっては手動で VA-API/VDPAU を手動で設定する必要があります。[[#確認]] セクションを見た場合にのみ、このセクションを読み進めてください。&lt;br /&gt;
&lt;br /&gt;
(他に設定が存在しない場合に使用される) デフォルトのドライバ名はシステムによって推測されます。しかし、それらはしばしばトリッキーで、機能しないこともあります。推測された値は [[Xorg]] のログファイルに出力されます。ログファイルは、Xorg が rootless の場合は {{ic|~/.local/share/xorg/Xorg.0.log}}、Xorg が root として実行されている場合は {{ic|/var/log/Xorg.0.log}} です。ログファイルからある値を検索するには:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ grep -iE &#039;vdpau {{!}} dri driver&#039; &#039;&#039;xorg_のログファイル&#039;&#039;|&lt;br /&gt;
(II) RADEON(0): [DRI2] DRI driver: radeonsi&lt;br /&gt;
(II) RADEON(0): [DRI2] VDPAU driver: radeonsi&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
この出力の場合、{{ic|radeonsi}} が VA-API と VDPAU のデフォルトです。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[GDM]] を使用している場合、代わりに {{ic|1=journalctl -b --grep=&#039;vdpau {{!}} dri driver&#039;}} を root として実行してください。}}&lt;br /&gt;
&lt;br /&gt;
しかし、これは &#039;&#039;設定&#039;&#039; を表すものではありません。上記の値は、オーバーライドしたとしても変更されません。&lt;br /&gt;
&lt;br /&gt;
=== VA-API の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|LIBVA_DRIVER_NAME}} [[環境変数]] を使うことで、VA-API 用に使用する[https://www.freedesktop.org/wiki/Software/vaapi/#driversback-endsthatimplementva-api ドライバ]をオーバーライドできます:&lt;br /&gt;
&lt;br /&gt;
* [[Intel Graphics]]:&lt;br /&gt;
** {{Pkg|libva-intel-driver}} の場合は {{ic|i965}} を使ってください。&lt;br /&gt;
** {{Pkg|intel-media-driver}} の場合は {{ic|iHD}} を使ってください。&lt;br /&gt;
* NVIDIA:&lt;br /&gt;
** [[Nouveau]] の場合は {{ic|nouveau}} を使ってください。&lt;br /&gt;
** [[NVIDIA]] NVDEC の場合は {{ic|nvidia}} を使ってください。&lt;br /&gt;
* AMD:&lt;br /&gt;
** [[AMDGPU]] ドライバの場合は {{ic|radeonsi}} を使ってください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* インストールされているドライバーは {{ic|/usr/lib/dri/}} ディレクトリを見ることで確認できます。{{ic|/usr/lib/dri/&#039;&#039;&#039;${LIBVA_DRIVER_NAME}&#039;&#039;&#039;_drv_video.so}} として使われます。&lt;br /&gt;
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/dri/* {{!}} sort}} を実行することで確認できます。&lt;br /&gt;
* {{ic|LIBVA_DRIVERS_PATH}} を使うことで VA-API ドライバーのパスを上書きできます。&lt;br /&gt;
* バージョン 12.0.1 から Mesa は {{ic|gallium}} の代わりとして {{ic|radeonsi}} を提供しています。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== VDPAU の設定 ===&lt;br /&gt;
&lt;br /&gt;
{{ic|VDPAU_DRIVER}} [[環境変数]]を使うことで、VDPAU 用に使用するドライバをオーバーライドできます。&lt;br /&gt;
&lt;br /&gt;
適切なドライバ名は、あなたのセットアップに依存します:&lt;br /&gt;
&lt;br /&gt;
* Intel graphics の場合、{{ic|va_gl}} に設定する[[#Failed to open VDPAU backend|必要があります]]。&lt;br /&gt;
* オープンソースの AMD ドライバの場合、{{ic|radeonsi}} に設定してください。&lt;br /&gt;
* オープンソースの Nouveau ドライバの場合、{{ic|nouveau}} に設定してください。&lt;br /&gt;
* NVIDIA のプロプライエタリなバージョンの場合、{{ic|nvidia}} に設定してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* インストールされているドライバーは {{ic|/usr/lib/vdpau/}} ディレクトリを見ることで確認できます。{{ic|/usr/lib/vdpau/libvdpau_&#039;&#039;&#039;${VDPAU_DRIVER}&#039;&#039;&#039;.so}} として使われます。&lt;br /&gt;
* 一部のドライバーは互換性を保つために異なる名前を使っていることがあります。{{ic|sha1sum /usr/lib/vdpau/*}} を実行することで確認できます。&lt;br /&gt;
* ハイブリッド構成 (NVIDIA と AMD の両方のカードが搭載されている) 場合、{{ic|DRI_PRIME}} [[環境変数]]を設定する必要があるかもしれません。詳しくは [[PRIME]] を参照。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションの設定 ===&lt;br /&gt;
&lt;br /&gt;
マルチメディアフレームワーク:&lt;br /&gt;
&lt;br /&gt;
* [[FFmpeg#ハードウェアビデオアクセラレーション]]&lt;br /&gt;
* [[GStreamer#ハードウェアアクセラレーション]]&lt;br /&gt;
&lt;br /&gt;
ビデオプレイヤ:&lt;br /&gt;
&lt;br /&gt;
* [[Kodi#ヒントとテクニック]]&lt;br /&gt;
* [[MPlayer#ハードウェアアクセラレーション]]&lt;br /&gt;
* [[mpv#ハードウェアデコード]]&lt;br /&gt;
* [[VLC media player#ハードウェアアクセラレーションのサポート]]&lt;br /&gt;
&lt;br /&gt;
ウェブブラウザ:&lt;br /&gt;
&lt;br /&gt;
* [[Chromium#ハードウェアビデオアクセラレーション]]&lt;br /&gt;
* [[Firefox#ハードウェアビデオアクセラレーション]]&lt;br /&gt;
* [[GNOME Web#ハードウェアアクセラレーション]]&lt;br /&gt;
&lt;br /&gt;
マルチメディア録画/ストリーミング:&lt;br /&gt;
&lt;br /&gt;
* [[Open Broadcaster Software#ハードウェアアクセラレーション]]&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Failed to open VDPAU backend ===&lt;br /&gt;
&lt;br /&gt;
適切なドライバを指すように {{ic|VDPAU_DRIVER}} 変数を設定する必要があります。[[#VDPAU の設定]] を参照。&lt;br /&gt;
&lt;br /&gt;
=== VAAPI init failed ===&lt;br /&gt;
&lt;br /&gt;
エラーは {{ic|libva: /usr/lib/dri/i965_drv_video.so init failed}} という行で確認できます。[[Wayland]] が正しく認識されていないことが原因で発生します。{{ic|$DISPLAY}} の設定を解除することで mpv, MPlayer, VLC などは X11 であると誤認しないようになります。mpv の場合は {{ic|1=--gpu-context=wayland}} パラメータを追加することでも解決できます。&lt;br /&gt;
&lt;br /&gt;
このエラーは、あなたのハードウェアに合わない VA-API ドライバをインストールした場合にも起こりえます。&lt;br /&gt;
&lt;br /&gt;
=== AMDGPU ドライバーを使用したビデオデコード時の破損や歪み ===&lt;br /&gt;
&lt;br /&gt;
[[AMDGPU]] ドライバーでビデオデコードの破損または歪みが発生する場合は、{{ic|1=allow_rgb10_configs=false}} [[環境変数]]を設定してください。[https://bugs.freedesktop.org/show_bug.cgi?id=106490]&lt;br /&gt;
&lt;br /&gt;
== 比較一覧 ==&lt;br /&gt;
&lt;br /&gt;
=== VA-API ドライバ ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! コーデック&lt;br /&gt;
! {{pkg|libva-intel-driver}} [https://github.com/01org/intel-vaapi-driver/blob/master/README]&lt;br /&gt;
! {{pkg|intel-media-driver}} [https://github.com/intel/media-driver/blob/master/README.md]&lt;br /&gt;
! {{pkg|mesa}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/]&lt;br /&gt;
! {{Pkg|libva-nvidia-driver}}&amp;lt;br&amp;gt; (NVDEC アダプタ)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | デコード&lt;br /&gt;
|-&lt;br /&gt;
! MPEG-2&lt;br /&gt;
| {{G|GMA 4500 以降}}&lt;br /&gt;
| {{G|Broadwell 以降}}&lt;br /&gt;
| {{G|Radeon HD 6000 以降&amp;lt;br&amp;gt;GeForce 8 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| rowspan=10 | [[#NVIDIA ドライバのみ]] を参照&lt;br /&gt;
|-&lt;br /&gt;
! H.263/MPEG-4 Visual&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{G|Radeon HD 6000 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VC-1&lt;br /&gt;
| {{G|Sandy Bridge 以降}}&lt;br /&gt;
| rowspan=2 {{G|Broadwell 以降}}&lt;br /&gt;
| {{G|Radeon HD 2000 以降&amp;lt;br&amp;gt;GeForce 9300 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
! H.264/MPEG-4 AVC&lt;br /&gt;
| {{G|GMA 4500&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;, Ironlake 以降}}&lt;br /&gt;
| {{G|Radeon HD 2000 以降&amp;lt;br&amp;gt;GeForce 8 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
! H.265/HEVC 8bit&lt;br /&gt;
| {{G|Cherryview/Braswell 以降}}&lt;br /&gt;
| {{G|Skylake 以降}}&lt;br /&gt;
| {{G|Radeon R9 Fury 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! H.265/HEVC 10bit&lt;br /&gt;
| {{G|Broxton 以降}}&lt;br /&gt;
| {{G|Broxton/Apollo Lake 以降}}&lt;br /&gt;
| {{G|Radeon 400 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VP8&lt;br /&gt;
| {{G|Broadwell 以降}}&lt;br /&gt;
| {{G|Broadwell 以降}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! VP9 8bit&lt;br /&gt;
| {{G|Broxton 以降 &amp;lt;br&amp;gt; Hybrid: Haswell refresh から Skylake&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{G|Broxton/Apollo Lake 以降}}&lt;br /&gt;
| rowspan=2 {{G|Raven Ridge + Radeon RX 5000 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VP9 10bit &amp;amp; 12bit&lt;br /&gt;
| {{G|Kaby Lake 以降}}&lt;br /&gt;
| {{G|Kaby Lake 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! AV1 8bit &amp;amp; 10bit&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{G|Tiger Lake 以降}}&lt;br /&gt;
| {{G|Radeon RX 6600 以上/以降}}&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | エンコード&lt;br /&gt;
|-&lt;br /&gt;
! MPEG-2&lt;br /&gt;
| {{G|Ivy Bridge 以降}}&lt;br /&gt;
| {{G|Broadwell 以降&amp;lt;br&amp;gt;Broxton/Apollo Lake を除く}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| rowspan=8 {{No}}&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! H.264/MPEG-4 AVC&lt;br /&gt;
| {{G|Sandy Bridge 以降}}&lt;br /&gt;
| {{G|Broadwell 以降}}&lt;br /&gt;
| {{G|Radeon HD 7000 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! H.265/HEVC 8bit&lt;br /&gt;
| {{G|Skylake 以降}}&lt;br /&gt;
| {{G|Skylake 以降}}&lt;br /&gt;
| {{G|Radeon 400 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! H.265/HEVC 10bit&lt;br /&gt;
| {{G|Kaby Lake 以降}}&lt;br /&gt;
| rowspan=2 {{G|Kaby Lake 以降}}&lt;br /&gt;
| {{G|Raven Ridge + Radeon RX 5000 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VP8&lt;br /&gt;
| {{G|Cherryview/Braswell 以降 &amp;lt;br&amp;gt; Hybrid: Haswell から Skylake&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| rowspan=3 {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! VP9 8bit&lt;br /&gt;
| {{G|Kaby Lake 以降}}&lt;br /&gt;
| rowspan=2 {{G|Icelake 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VP9 10bit &amp;amp; 12bit&lt;br /&gt;
| rowspan=2 {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! AV1 8bit &amp;amp; 10bit&lt;br /&gt;
| {{G|Alchemist 以降}}&lt;br /&gt;
| {{G|Radeon RX 7900 以上/以降}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; GeForce GTX 750 まで。&lt;br /&gt;
* &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; 代わりに {{aur|libva-intel-driver-g45-h264}} によってサポートされています。&lt;br /&gt;
* &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; Hybrid VP8 エンコーダと VP9 デコーダは {{AUR|intel-hybrid-codec-driver-git}} によってサポートされています。&lt;br /&gt;
* &amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; MPEG-4 Part 2 は VAAPI の制限のためデフォルトで無効化されています。使用してみるには、{{ic|1=VAAPI_MPEG4_ENABLED=true}} [[環境変数]]を設定してください。&lt;br /&gt;
* &amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt; NVIDIA CUDA アダプタコーデックのサポートは活発に開発中であり、これは変更される可能性があります [https://github.com/elFarto/nvidia-vaapi-driver/issues/116]。&lt;br /&gt;
&lt;br /&gt;
=== VDPAU ドライバ ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! コーデック&lt;br /&gt;
! 色深度&lt;br /&gt;
! {{pkg|mesa}} [https://www.x.org/wiki/RadeonFeature/] [https://nouveau.freedesktop.org/wiki/VideoAcceleration/]&lt;br /&gt;
! {{pkg|nvidia-utils}}&lt;br /&gt;
! {{pkg|libvdpau-va-gl}}&amp;lt;br&amp;gt;(VA-API アダプタ)&lt;br /&gt;
|-&lt;br /&gt;
! colspan=5 | デコード&lt;br /&gt;
|-&lt;br /&gt;
! MPEG-2&lt;br /&gt;
! 8bit&lt;br /&gt;
| {{G|Radeon R600 以降 &amp;lt;br&amp;gt; GeForce 8 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{G|GeForce 8 以降}}&lt;br /&gt;
| rowspan=3 {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! H.263/MPEG-4 Visual&lt;br /&gt;
! 8bit&lt;br /&gt;
| {{G|Radeon HD 6000 以降 &amp;lt;br&amp;gt; GeForce 200 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{G|GeForce 200 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VC-1&lt;br /&gt;
! 8bit&lt;br /&gt;
| {{G|Radeon HD 2000 以降 &amp;lt;br&amp;gt; GeForce 9300 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{G|GeForce 8 以降&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
! H.264/MPEG-4 AVC&lt;br /&gt;
! 8bit&lt;br /&gt;
| {{G|Radeon HD 2000 以降 &amp;lt;br&amp;gt; GeForce 8 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{G|GeForce 8 以降}}&lt;br /&gt;
| [[#VA-API ドライバ]] を参照&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 | H.265/HEVC&lt;br /&gt;
! 8bit&lt;br /&gt;
| {{G|Radeon R9 Fury 以降}}&lt;br /&gt;
| {{G|GeForce 900 以降&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| rowspan=6 {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! 10bit&lt;br /&gt;
| {{G|Radeon 400 以降}}&lt;br /&gt;
| {{No}}&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 | VP9&lt;br /&gt;
! 8bit&lt;br /&gt;
| rowspan=2 {{G|Raven Ridge + Radeon RX 5000 以降}}&lt;br /&gt;
| {{G|GeForce 900 以降&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
! 10bit/12bit&lt;br /&gt;
| {{No}}&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! rowspan=2 | AV1&lt;br /&gt;
! 8bit&lt;br /&gt;
| rowspan=2 {{G|Radeon RX 6600 以上/以降}}&lt;br /&gt;
| {{G|GeForce 30 以降}}&amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 10bit&lt;br /&gt;
| {{No}}&amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; GeForce GTX 750 まで。&lt;br /&gt;
* &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; GeForce 8800 Ultra、8800 GTX、8800 GTS (320/640 MB) は[[Wikipedia:Nvidia PureVideo|除く]]。&lt;br /&gt;
* &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; GeForce GTX 970 と GTX 980 は除く。&lt;br /&gt;
* &amp;lt;sup&amp;gt;4&amp;lt;/sup&amp;gt; NVIDIA の実装は8ビットストリームまでに制限されています [https://forums.developer.nvidia.com/t/vdpau-expose-hevc-main10-support-where-available-on-die/43163] [https://us.download.nvidia.com/XFree86/Linux-x86_64/410.57/README/vdpausupport.html#vdpau-implementation-limits]。&lt;br /&gt;
* &amp;lt;sup&amp;gt;5&amp;lt;/sup&amp;gt; ドライババージョン 510 から [https://www.phoronix.com/scan.php?page=news_item&amp;amp;px=NVIDIA-510-Linux-Beta]&lt;br /&gt;
&lt;br /&gt;
=== NVIDIA ドライバのみ ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! rowspan=2 | コーデック&lt;br /&gt;
! colspan=2 | {{Pkg|nvidia-utils}} [https://developer.nvidia.com/nvidia-video-codec-sdk]&lt;br /&gt;
|-&lt;br /&gt;
! NVDEC&lt;br /&gt;
! NVENC&lt;br /&gt;
|-&lt;br /&gt;
! MPEG-2&lt;br /&gt;
| rowspan=3 {{G|Fermi 以降&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| rowspan=2 {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! VC-1&lt;br /&gt;
|-&lt;br /&gt;
! H.264/MPEG-4 AVC&lt;br /&gt;
| {{G|Kepler 以降&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
|-&lt;br /&gt;
! H.265/HEVC 8bit&lt;br /&gt;
| rowspan=2 {{G|Maxwell (GM206) 以降}}&lt;br /&gt;
| {{G|Maxwell (2nd Gen) 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! H.265/HEVC 10bit&lt;br /&gt;
| {{G|Pascal 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VP8&lt;br /&gt;
| {{G|Maxwell (2nd Gen) 以降}}&lt;br /&gt;
| rowspan=3 {{No}}&lt;br /&gt;
|-&lt;br /&gt;
! VP9 8bit&lt;br /&gt;
| {{G|Maxwell (GM206) 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! VP9 10bit &amp;amp; 12bit&lt;br /&gt;
| {{G|Pascal 以降}}&lt;br /&gt;
|-&lt;br /&gt;
! AV1 8bit &amp;amp; 10bit&lt;br /&gt;
| {{G|Ampere 以降&amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt;}}&lt;br /&gt;
| {{G|Ada Lovelace 以降}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; GM108 は除く (未サポート)&lt;br /&gt;
* &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; GM108 と GP108 は除く (未サポート)&lt;br /&gt;
* &amp;lt;sup&amp;gt;3&amp;lt;/sup&amp;gt; A100 は除く (未サポート)&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションサポート ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! rowspan=2 | アプリケーション&lt;br /&gt;
! colspan=3 | デコード&lt;br /&gt;
! colspan=2 | エンコード&lt;br /&gt;
! rowspan=2 | ドキュメント&lt;br /&gt;
|-&lt;br /&gt;
! VA-API&lt;br /&gt;
! VDPAU&lt;br /&gt;
! NVDEC&lt;br /&gt;
! VA-API&lt;br /&gt;
! NVENC&lt;br /&gt;
|-&lt;br /&gt;
! [[FFmpeg]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| [[FFmpeg#ハードウェアビデオアクセラレーション]]&lt;br /&gt;
|-&lt;br /&gt;
! [[GStreamer]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| [[GStreamer#ハードウェアアクセラレーション]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Kodi]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| [[Kodi#ヒントとテクニック]]&lt;br /&gt;
|-&lt;br /&gt;
! [[mpv]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| [[mpv#ハードウェアデコード]]&lt;br /&gt;
|-&lt;br /&gt;
! [[VLC media player]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| [[VLC media player#ハードウェアアクセラレーションのサポート]]&lt;br /&gt;
|-&lt;br /&gt;
! [[MPlayer]]&lt;br /&gt;
| {{Yes}}&amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt;&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| [[MPlayer#ハードウェアアクセラレーション]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Flash]]&lt;br /&gt;
| {{No}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
| {{Yes}}&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| {{-}}&lt;br /&gt;
| [[ブラウザプラグイン#Adobe Flash Player]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Chromium]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| [[Chromium#ハードウェアビデオアクセラレーション]]&lt;br /&gt;
|-&lt;br /&gt;
! [[Firefox]]&lt;br /&gt;
| {{Yes}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| {{No|1=https://bugzilla.mozilla.org/show_bug.cgi?id=1658900}}&lt;br /&gt;
| {{No}}&lt;br /&gt;
| [[Firefox#ハードウェアビデオアクセラレーション]]&lt;br /&gt;
|-&lt;br /&gt;
! [[GNOME/Web]]&lt;br /&gt;
| colspan=3 {{C|GStreamer}}&lt;br /&gt;
| {{C|?}}&lt;br /&gt;
| {{C|?}}&lt;br /&gt;
| [[GNOME Web#ビデオ]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;sup&amp;gt;1&amp;lt;/sup&amp;gt; VA-API サポートは代わりに {{AUR|mplayer-vaapi}} によって提供されています。&lt;br /&gt;
* &amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; VDPAU は NPAPI プラグインによってのみサポートされています。部分的な VA-API と VDPAU アクセラレーションを提供する、PPAPI プラグインから NPAPI ブラウザへの実験的なアダプタが利用できます。&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Hardware video acceleration|2024-12-27|821863}}&lt;/div&gt;</summary>
		<author><name>Akku</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8&amp;diff=39154</id>
		<title>パッケージにパッチを適用</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%81%AB%E3%83%91%E3%83%83%E3%83%81%E3%82%92%E9%81%A9%E7%94%A8&amp;diff=39154"/>
		<updated>2024-10-12T15:29:40Z</updated>

		<summary type="html">&lt;p&gt;Akku: 脱字を修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:パッケージ管理]]&lt;br /&gt;
[[en:Patching packages]]&lt;br /&gt;
[[pt:Patching packages]]&lt;br /&gt;
[[zh-hans:Patching packages]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Arch build system}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
このドキュメントでは [[Arch Build System]] (ABS) を使ってパッケージにパッチを作成したり適用する手順を説明します。&lt;br /&gt;
&lt;br /&gt;
[[Wikipedia:ja:パッチ|パッチ]] にはファイルにおけるとある行の変更が複数記されています。ソースコードの変更を自動化するのに主に用いられます。&lt;br /&gt;
&lt;br /&gt;
== パッチの作成 ==&lt;br /&gt;
&lt;br /&gt;
パッチには特定のファイル、あるいは複数のファイルの変更行が含まれています。ソースコードの変更を自動化するときにパッチは使われます。&lt;br /&gt;
&lt;br /&gt;
{{Note|特定の行を変更するだけであれば、{{ic|sed}} を代わりに使用するという手もあります。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|diff}} ツールは行毎にファイルを比較します。ツールの出力を保存することでパッチを作成できます (例: {{ic|diff --unified --recursive --text foo bar &amp;gt; patch}})。ディレクトリを指定すると {{ic|diff}} はディレクトリに含まれているファイルを比較します。&lt;br /&gt;
&lt;br /&gt;
# パッケージをビルド済みの場合は {{ic|src}} ディレクトリを削除してください。&lt;br /&gt;
# {{ic|makepkg --nobuild}} を実行してください。{{ic|PKGBUILD}} に記述されたソースファイルがダウンロード・展開されます。&lt;br /&gt;
# {{ic|src}} ディレクトリに展開されたディレクトリのコピーを2つ作成してください。ひとつは元のまま取っておくコピーで、もうひとつは変更を加えるコピーです。ここでは {{ic|package.orig}} と {{ic|package.new}} と呼称します。&lt;br /&gt;
# {{ic|package.new}} ディレクトリのファイルに必要な変更を加えてください。&lt;br /&gt;
# {{ic|diff --unified --recursive --text package.orig package.new --color}} を実行してパッチがどのようにできるか確認してください。&lt;br /&gt;
# {{ic|diff --unified --recursive --text package.orig package.new &amp;gt; package.patch}} を実行してパッチを作成してください。&lt;br /&gt;
# {{ic|package.orig}} ディレクトリに移動して {{ic|patch -p1 &amp;lt; ../package.patch}} でパッチを適用してください。{{ic|makepkg --noextract --install}} で変更を加えたパッケージがビルド・インストールできることを確認します。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Git]] で {{ic|git diff}} または {{ic|git format-patch}} を使ってパッチを作成することもできます [https://stackoverflow.com/questions/6658313/generate-a-git-patch-for-a-specific-commit]。}}&lt;br /&gt;
&lt;br /&gt;
{{ic|diff}} について、さらなる詳細は {{man|1|diff}} や {{man|1|git-diff}} を参照してください。&lt;br /&gt;
&lt;br /&gt;
== パッチの適用 ==&lt;br /&gt;
&lt;br /&gt;
このセクションでは自分で作成した、あるいはインターネットからダウンロードしてきたパッチを {{ic|PKGBUILD}} の {{ic|prepare()}} 関数で適用する方法を説明します。以下の手順に従ってください:&lt;br /&gt;
&lt;br /&gt;
# {{ic|PKGBUILD}} の {{ic|source}} 配列にパッチファイルのエントリを追加してください。元のソース url とは空白で区切られます。ファイルがオンライン上に存在する場合、完全な URL を記入すれば {{ic|src}} ディレクトリに自動的にダウンロード・配置されます。パッチを自分で作成した場合、あるいはインターネット上からパッチを取得できない場合、{{ic|PKGBUILD}} ファイルと同じディレクトリにパッチファイルを置いて、{{ic|source}} 配列にファイルの名前を追加してください。ファイルが {{ic|src}} ディレクトリにコピーされるようになります。{{ic|PKGBUILD}} を再配布する場合、{{ic|PKGBUILD}} とパッチを一緒にする必要があります。&lt;br /&gt;
# 次に、パッケージ {{Pkg|pacman-contrib}} に含まれる {{ic|updpkgsums}} を使用して {{ic|md5sums}} 配列を更新してください。あるいは手動で {{ic|md5sums}} 配列にエントリを追加してください。{{ic|md5sum}} ツールを使うことでパッチのチェックサムを生成できます。&lt;br /&gt;
# {{ic|PKGBUILD}} の中に {{ic|prepare()}} 関数を(存在しない場合)作成してください。&lt;br /&gt;
# まずはパッチをあてる必要があるディレクトリに移動します (移動を行うのは {{ic|prepare()}} 関数の中で、ターミナルではありません。パッチの適用を自動化します)。{{ic|cd $srcdir/$pkgname-$pkgver}} などとすることでディレクトリを移動できます。{{ic|$pkgname-$pkgver}} はダウンロードされたソースファイルが展開されたときによく作られるディレクトリの名前ですが、必ずしもこの名前になるとは限りません。&lt;br /&gt;
# ディレクトリの中からパッチを適用してください。{{ic|prepare()}} 関数に以下を追加するだけです ({{ic|&#039;&#039;pkgname&#039;&#039;.patch}} は差分が含まれているファイルの名前に置き換えてください。パッチファイルは {{ic|PKGBUILD}} の {{ic|source}} 配列に追加したので自動的に {{ic|src}} ディレクトリにコピーされています):&lt;br /&gt;
&lt;br /&gt;
prepare 関数の例:&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
prepare() {&lt;br /&gt;
    cd &amp;quot;$pkgname-$pkgver&amp;quot;&lt;br /&gt;
    patch --forward --strip=1 --input=&amp;quot;${srcdir}/eject.patch&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
あるいは、最初に cd せずに、{{ic|patch}} の {{ic|--directory}} フラグを使用することもできます。上記の例は次のようになります:&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
prepare() {&lt;br /&gt;
    patch --directory=&amp;quot;$pkgname-$pkgver&amp;quot; --forward --strip=1 --input=&amp;quot;${srcdir}/eject.patch&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
(ターミナルから) {{ic|makepkg}} を実行してください。全てが上手くいっていれば、パッチが自動的に適用されて、新しいパッケージにはパッチに含まれている変更が追加されているはずです。そうならない場合、patch の {{ic|-p}} オプションを使って実験を行ってみてください ({{ic|--dry-run}} や {{ic|--reverse}} や {{ic|--verbose}} などのオプションが有用でしょう)。詳しくは {{man|1|patch}} を読んでください。&lt;br /&gt;
&lt;br /&gt;
基本的には次のようになっています。{{ic|myversion/}} のファイルにパッチを適用する diff ファイルが作成された場合、diff ファイルは {{ic|myversion/file}} に適用されます。({{ic|PKGBUILD}} で cd した) {{ic|yourversion/}} ディレクトリの中から実行する場合、ファイルにパッチが適用されるときに、{{ic|myversion/}} の部分は省いて {{ic|file}} ファイルに適用されるようにしなくてはなりません。{{ic|1= --strip=1}} でパスからディレクトリが一つ削除されます。しかしながら、開発者が {{ic|myfiles/myversion}} にパッチを適用した場合、ディレクトリを二つ削除する必要があるので、{{ic|1= --strip=2}} を使います。&lt;br /&gt;
&lt;br /&gt;
{{ic|--strip}} オプションを指定しなかった場合、全てのディレクトリ構造が取り除かれます。全てのファイルがベースディレクトリに存在する場合はそれで ok ですが、パッチを作成したのが {{ic|myversion/}} で編集したファイルが {{ic|myversion/src/file}} の場合、{{ic|yourversion}} の中から {{ic|--strip}} オプションを付けずにパッチを実行したときに、{{ic|yourversion/file}} という名前のファイルにパッチが適用されてしまいます。&lt;br /&gt;
&lt;br /&gt;
ほとんどの開発者はパッチを適用するディレクトリの親ディレクトリからパッチを作成するので、通常は {{ic|1= --strip=1}} が適切です。&lt;br /&gt;
&lt;br /&gt;
== quilt を使う ==&lt;br /&gt;
&lt;br /&gt;
多数のパッチを管理する場合、{{Pkg|quilt}} を使うことでパッチの適用や更新、パッチをあてたファイルのリバートなどが楽になります。{{Pkg|quilt}} は [https://wiki.debian.org/UsingQuilt Debian] でパッチを管理するのに使われています。基本的な使用方法は [http://www.shakthimaan.com/downloads/glv/quilt-tutorial/quilt-doc.pdf Using Quilt] を見てください。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* http://www.kegel.com/academy/opensource.html — パッチの適用に関する有用な情報&lt;/div&gt;</summary>
		<author><name>Akku</name></author>
	</entry>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Waydroid&amp;diff=38316</id>
		<title>Waydroid</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Waydroid&amp;diff=38316"/>
		<updated>2024-08-07T02:45:37Z</updated>

		<summary type="html">&lt;p&gt;Akku: 言語間リンクの追加 (中国語版はうまく転送されない)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:サンドボックス]]&lt;br /&gt;
[[Category:仮想化]]&lt;br /&gt;
[[Category:Android]]&lt;br /&gt;
[[en:Waydroid]]&lt;br /&gt;
&amp;lt;!-- [[zh-hans:Waydroid]] --&amp;gt;&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|Anbox}}&lt;br /&gt;
{{Related|Linux Containers}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
{{Style|Need to improve style.}}&lt;br /&gt;
&lt;br /&gt;
Waydroidは、通常の GNU/Linux システム上で完全な Android システムを起動するためのコンテナベースのアプローチです。&lt;br /&gt;
&lt;br /&gt;
== 前提条件 ==&lt;br /&gt;
&lt;br /&gt;
=== CPU 要件 ===&lt;br /&gt;
&lt;br /&gt;
要件は CPU アーキテクチャによって異なります。詳しくは [https://developer.android.com/ndk/guides/abis#sa テーブル]で確認することができます。&lt;br /&gt;
&lt;br /&gt;
必要な CPU 命令があるかどうかは、{{ic|cat /proc/cpuinfo}} で確認することができます。&lt;br /&gt;
&lt;br /&gt;
=== GPU 要件 ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は現在 Intel GPU で最適に動作します。それらはすぐに使用できるはずです。&lt;br /&gt;
&lt;br /&gt;
すべての AMD GPU はサポートされています。もし Waydroid が動作しない場合は、新しい Waydroid イメージ(Radeon 680M で動作)をビルドするか、以下の NVIDIA の手順を試してみてください。&lt;br /&gt;
&lt;br /&gt;
NVIDIA GPU は現在動作しませんが、2 つの回避策があります:&lt;br /&gt;
&lt;br /&gt;
* 可能であれば、統合型グラフィックカードに変更する&lt;br /&gt;
* ソフトウェアレンダリングを使用します：&lt;br /&gt;
** すでに {{ic|waydroid init}} が実行されていることを確認してください。(インストール]]の項を参照）。&lt;br /&gt;
** {{ic|/var/lib/waydroid/waydroid_base.prop}} を編集し、{{bc|&amp;lt;nowiki&amp;gt;ro.hardware.gralloc=default&lt;br /&gt;
ro.hardware.egl=swiftshader&amp;lt;/nowiki&amp;gt;}} に設定する。&lt;br /&gt;
** [[再起動]]し、{{ic|waydroid-container.service}} を起動します。&lt;br /&gt;
&lt;br /&gt;
=== Wayland セッションマネージャ ===&lt;br /&gt;
&lt;br /&gt;
Waydroid は [[Wayland]] セッションマネージャーでのみ動作しますので、Wayland セッションであることを確認してください。&lt;br /&gt;
&lt;br /&gt;
X11 にいる場合でも、多くの Wayland セッションマネージャはネストされたセッションをサポートしていることに注意してください（X11 セッションの中で実行することができます）。&lt;br /&gt;
&lt;br /&gt;
=== Kernel Modules ===&lt;br /&gt;
&lt;br /&gt;
You need to run a kernel which comes with the binder modules and optionally the ashmem one. They are not part of Arch Linux&#039;s default kernel ({{Pkg|linux}}), thus you need to install a kernel which ships these modules.&lt;br /&gt;
&lt;br /&gt;
You might also need to configure your bootloader to use a different kernel. Please refer to the wiki page of your bootloader how to boot with the new kernel. Booting into another kernel (version) is one of the few occasions when you have to reboot a Linux system. You should boot into the kernel with these modules before starting Waydroid.&lt;br /&gt;
&lt;br /&gt;
{{Note|1=Since {{aur|waydroid}} 1.2.1 &#039;&#039;ashmem&#039;&#039; is not needed anymore, &#039;&#039;memfd&#039;&#039; can be used instead, see [https://github.com/waydroid/waydroid/issues/406 issue]. This because &#039;&#039;ashmem&#039;&#039; has been completely replaced by &#039;&#039;memfd&#039;&#039; in &#039;&#039;mainline Linux&#039;&#039; since version 5.18, see [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=721412ed3d819e767cac2b06646bf03aa158aaec commit].}}&lt;br /&gt;
&lt;br /&gt;
To get a compatible kernel, you have multiple options:&lt;br /&gt;
&lt;br /&gt;
==== Using Linux-Zen ====&lt;br /&gt;
&lt;br /&gt;
The {{Pkg|linux-zen}} kernel includes the necessary modules. This might be the most comfortable way, as you do not have to compile the kernel (which takes a long time) and will receive updated versions regularly.&lt;br /&gt;
&lt;br /&gt;
==== DKMS modules ====&lt;br /&gt;
&lt;br /&gt;
You can install {{aur|anbox-modules-dkms-git}} and load kernel modules with: {{bc|# modprobe ashmem_linux&lt;br /&gt;
# modprobe binder_linux&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Alternatively, if your kernel is 5.18 or newer, install {{aur|binder_linux-dkms}}, which provides just binder_linux.&lt;br /&gt;
&lt;br /&gt;
==== Building a kernel ====&lt;br /&gt;
&lt;br /&gt;
Alternatively, you can recompile the {{Pkg|linux}} kernel — or other kernel packages (&amp;gt;=5.7) — with the necessary options. Also see [[Kernel#Compilation]].&lt;br /&gt;
&lt;br /&gt;
When setting compilation options, you have 2 options available; &#039;&#039;binder&#039;&#039; and &#039;&#039;binderfs&#039;&#039;. Instructions for both are provided below.&lt;br /&gt;
&lt;br /&gt;
===== Using binder =====&lt;br /&gt;
&lt;br /&gt;
The modules can either be compiled into the kernel ({{ic|y}}), into modules ({{ic|m}}), or not at all ({{ic|n}}). Also, not all combinations in the configuration are possible, and some options will require other options.&lt;br /&gt;
&lt;br /&gt;
The configuration options below will compile binder as a module, while the last option specifies that there will be three devices created in the {{ic|/dev/}} directory, when the binder module is loaded.&lt;br /&gt;
&lt;br /&gt;
{{bc|1=&lt;br /&gt;
CONFIG_ANDROID=y&lt;br /&gt;
CONFIG_ANDROID_BINDER_IPC=m&lt;br /&gt;
CONFIG_ANDROID_BINDERFS=n&lt;br /&gt;
CONFIG_ANDROID_BINDER_DEVICES=&amp;quot;binder,hwbinder,vndbinder&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
When building a kernel from the AUR, one can update the configuration with the following steps:&lt;br /&gt;
&lt;br /&gt;
# run {{ic|makepkg --nobuild}}, which will download the sources, verify and extract them and run the {{ic|prepare()}} function.&lt;br /&gt;
# edit the {{ic|.config}} file (with the dot in the filename), which is located at the base of the kernel directory.&lt;br /&gt;
# at the end of the {{ic|prepare()}} function was probably a command which regenerates the makefiles with information from the configuration, possibly {{ic|make olddefconfig}}. Move that to the {{ic|build()}} function, or execute it yourself.&lt;br /&gt;
# run {{ic|makepkg --noextract}}, which will continue from the place where {{ic|makepkg --nobuild}} stopped.&lt;br /&gt;
&lt;br /&gt;
===== Using binderfs =====&lt;br /&gt;
&lt;br /&gt;
The binder kernel module is known to cause some issues to several users. To address these issues, binderfs was created. One has to choose between the old and the new way when compiling the kernel. With the options below, one will use binderfs instead.&lt;br /&gt;
&lt;br /&gt;
With the kernel sources comes also a simple script to set configuration options. It will not do dependency checks, just like when editing the configuration by hand. When being in the same directory where the {{ic|.config}} file lies, one can execute the following commands:&lt;br /&gt;
&lt;br /&gt;
{{bc|&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID_BINDER_IPC&lt;br /&gt;
$ scripts/config --enable  CONFIG_ANDROID_BINDERFS&lt;br /&gt;
$ scripts/config --set-str CONFIG_ANDROID_BINDER_DEVICES &amp;quot;&amp;quot;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
When building a kernel from the AUR, it is enough to insert these lines at the right place in the [[PKGBUILD]], usually in {{ic|prepare()}}.&lt;br /&gt;
&lt;br /&gt;
==== Setup binder devices ====&lt;br /&gt;
&lt;br /&gt;
Make sure you have the latest version of Waydroid package, and Waydroid will take automatically care of this.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
&lt;br /&gt;
[[Install]] the {{AUR|waydroid}} package.&lt;br /&gt;
&lt;br /&gt;
Optionally, install {{AUR|waydroid-image}} or {{AUR|waydroid-image-gapps}} to provide the needed Android image through AUR. It is however recommended to let Waydroid itself handle downloading the images.&lt;br /&gt;
&lt;br /&gt;
Afterwards init Waydroid, this will automatically download the latest Android image if it is not yet available.&lt;br /&gt;
 # waydroid init&lt;br /&gt;
&lt;br /&gt;
To init with GApps support:&lt;br /&gt;
 # waydroid init -s GAPPS -f&lt;br /&gt;
Next [[start/enable]] the {{ic|waydroid-container.service}}.&lt;br /&gt;
&lt;br /&gt;
Waydroid should now work.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
Make sure that {{ic|waydroid-container.service}} is running then run:&lt;br /&gt;
 $ waydroid session start&lt;br /&gt;
&lt;br /&gt;
The Waydroid session is now active, here are a couple of useful commands to interact with it:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Launch GUI&#039;&#039;:&lt;br /&gt;
 $ waydroid show-full-ui&lt;br /&gt;
&#039;&#039;Launch shell&#039;&#039;:&lt;br /&gt;
 # waydroid shell&lt;br /&gt;
&#039;&#039;Install an application&#039;&#039;:&lt;br /&gt;
 $ waydroid app install $path_to_apk&lt;br /&gt;
&#039;&#039;Run an application&#039;&#039;:&lt;br /&gt;
 $ waydroid app launch $package-name #Can be retrieved with `waydroid app list`&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
The network should work out of the box, if its not you might need to make sure [[internet sharing#Enable packet forwarding|packet forwarding]] is enabled in kernel and allow the following rules through your firewall &#039;&#039;before&#039;&#039; running &#039;&#039;Waydroid session start&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Taking {{pkg|ufw}} as an example:&lt;br /&gt;
&lt;br /&gt;
* Dns traffic needs to be allowed:&lt;br /&gt;
** {{bc|# ufw allow 67}}&lt;br /&gt;
** {{bc|# ufw allow 53}}&lt;br /&gt;
* Packet forwarding needs to be allowed:&lt;br /&gt;
** {{bc|# ufw default allow FORWARD}}&lt;br /&gt;
&lt;br /&gt;
For {{pkg|firewalld}}, you can use those commands:&lt;br /&gt;
&lt;br /&gt;
* DNS:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-port=67/udp}}&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-port=53/udp}}&lt;br /&gt;
* Packet forwarding:&lt;br /&gt;
** {{bc|1=# firewall-cmd --zone=trusted --add-forward}}&lt;br /&gt;
&lt;br /&gt;
{{Note|We assume that interface {{ic|waydroid0}} created by waydroid should be in the firewalld zone {{ic|trusted}} automatically. If not so, please adjust those commands above or move interface {{ic|waydroid0}} to {{ic|trusted}}. You may also need {{bc|# firewall-cmd --runtime-to-permanent}} to make your changes exist after a restart.}}&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
If you run into issues, take a look at the official Issue Tracker: [https://github.com/waydroid/waydroid/issues Waydroid issue tracker]&lt;br /&gt;
&lt;br /&gt;
=== General tips ===&lt;br /&gt;
&lt;br /&gt;
Waydroid is in rapid developement so if you face issues, here is a good list of steps to do first:&lt;br /&gt;
&lt;br /&gt;
# Make sure your Waydroid package is up to date;&lt;br /&gt;
# Make sure you have the latest Waydroid image by running {{bc|# waydroid upgrade}}&lt;br /&gt;
# Reset Waydroid: [[stop]] the {{ic|waydroid-container.service}}, run {{bc|# waydroid init -f}} and [[start]] the service again. &lt;br /&gt;
# You may also want to do little cleanup, run {{bc|# rm -rf /var/lib/waydroid /home/.waydroid}} {{bc|$ rm -rf ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid}}&lt;br /&gt;
&lt;br /&gt;
=== Rotated apps are unusable ===&lt;br /&gt;
&lt;br /&gt;
See https://github.com/waydroid/waydroid/issues/70&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;F11&#039;&#039; to switch the current app to windowed mode.&lt;br /&gt;
&lt;br /&gt;
=== Failed to start Clipboard manager service ===&lt;br /&gt;
&lt;br /&gt;
Install {{aur|python-pyclip}}&lt;br /&gt;
&lt;br /&gt;
=== Sometimes the physical keyboard does not work ===&lt;br /&gt;
&lt;br /&gt;
Press &#039;&#039;Left Alt&#039;&#039; key.&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;dnsmasq: failed to open pidfile /run/waydroid-lxc/dnsmasq.pid: Permission denied&#039;&#039;&#039; ===&lt;br /&gt;
&lt;br /&gt;
apparmor rule is not set, goto /etc/apparmor.d/usr.sbin.dnsmasq&lt;br /&gt;
and add below&lt;br /&gt;
{{bc|#/etc/apparmor.d/usr.sbin.dnsmasq&lt;br /&gt;
&lt;br /&gt;
@{run}/waydroid-lxc/ r,&lt;br /&gt;
@{run}/waydroid-lxc/* rw, }}&lt;br /&gt;
&lt;br /&gt;
=== Commands inside Waydroid shell outputs inaccessible or not found ===&lt;br /&gt;
&lt;br /&gt;
On Arch based distributions there&#039;s a [[Linux Containers#Basic usage|&amp;quot;bug&amp;quot; that may appear while working with lxc-attach]] that may cause this issue with commands inside {{ic|waydroid shell}} like {{ic|adbd}} or {{ic|settings}}.&lt;br /&gt;
A possible workaround for this would be replace the {{bc|# waydroid shell}} command with {{bc|# lxc-attach -P /var/lib/waydroid/lxc/ -n waydroid --clear-env}}&lt;br /&gt;
&lt;br /&gt;
=== WARNING: Service manager /dev/binder has died ===&lt;br /&gt;
&lt;br /&gt;
See https://github.com/waydroid/waydroid/issues/136&lt;br /&gt;
&lt;br /&gt;
You should enable [https://docs.kernel.org/accounting/psi.html PSI].&lt;br /&gt;
Add {{ic|1=psi=1}} to the [[kernel command line]].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/waydroid/waydroid Waydroid GitHub repo]&lt;br /&gt;
* [https://docs.waydro.id/ Waydroid documentation]&lt;br /&gt;
* [https://matrix.to/#/#waydroid:connolly.tech Waydroid Matrix group]&lt;br /&gt;
* [https://t.me/WayDroid Waydroid Telegram group]&lt;/div&gt;</summary>
		<author><name>Akku</name></author>
	</entry>
</feed>