OpenCLメモ (その7) [終] - reductionとshared local memory(SLM)の使用

最後に、配列の総和計算でshared local memory(SLM)の使用方法を確認する。
スポンサーサイト

OpenCLメモ (その6) - imageの使用

今回はconvolution計算を例に、imageNd(image1d/image2d/image3d)の使い方を確認した。

OpenCLメモ (その5) - 転送(コピー)の排除 (SVM : OpenCL 2.0)

前回は、OpenCL 1.2の範囲でUSE_HOST_PTRやALLOC_HOST_PTRを使ってホスト-デバイス間のコピーをなくす方法を確認した。今回は、OpenCL 2.0のSVM (Shared Virtual Memory)を使った方法を確認する。

参考資料
Intel Developer Zone - OpenCL™ 2.0 Shared Virtual Memory Overview

OpenCLメモ (その4) - 転送(コピー)の排除 (USE_HOST_PTR)

CPUメモリとOpenCLバッファ(GPUメモリ)は通常別のアドレス空間であり、転送が必要である。NVIDIA等のdGPUなら、物理的にも別のメモリであるから、転送が必要なのは、まあ、当たり前だろう。

しかし、この転送というのはくせ者で、たいてい結構重い。計算より転送が重いなんていうのは、ありがちな話だ。例えば、以下の例でもピンクの部分が実際の計算だが、その前後の緑/青色の転送のほうが時間がかかってしまっている。



IntelのGPUでOpenCLを使用する場合、そのメモリはCPUと物理的には同一メモリ上にある。そのため、OpenCL 1.2以降で使用可能なUSE_HOSRT_PTRという仕組みを使って、転送を不要にすることができる。これをIntelではZeroCopyと呼んでいる。

参考資料
iSUS - OpenCL* 1.2 の活用: インテル® プロセッサー・グラフィックスでバッファーコピーを最小限に抑えてパフォーマンスを向上する方法
Intel Developer Zone - Getting the Most from OpenCL™ 1.2: How to Increase Performance by Minimizing Buffer Copies on Intel® Processor Graphics

今回はこれを試してみる。

OpenCLメモ (その3) - work sizeの調整

今回は、この前の簡単な配列加算のプログラムの速度を確認し、work sizeの調整で実行速度が変わることを確認してみる。

OpenCLメモ (その2) - Intel GPUの構造

The Compute Architecture of Intel Processor Graphics Gen9と、2014 OpenCL Optimization Guideをたよりに、Intel GPUの構造を確認した。

構造を理解していないと、いろいろな罠にひっかかって速度が出ないというのが、GPUの特徴である。

OpenCLメモ (その1) - かんたんな計算

最近のCPUにはたいていGPUがついてきていて、

skylake_die_gpus.png
The Compute Architecture of Intel Processor Graphics Gen9より

まあ、大雑把にだいたい30~40%ぐらいGPUだったりする。このGPUを有効利用するには、OpenCLを使って、GPUで計算するのが良いとされるので、年末も近づき、暇になってきたので少し試してみることにした。

OpenCLは以前にもすこしだけやったことがあるが、すぐに忘れてしまうのでメモ書きを残すことにする。
プロフィール

rigaya

Author:rigaya
アニメとか見たり、エンコードしたり。
連絡先(@を半角にしてください!)
rigaya34589@live.jp
github

最新記事
最新コメント
カテゴリ
月別アーカイブ
カウンター
検索フォーム
いろいろ
公開中のAviutlプラグインとかのダウンロード

○Aviutlプラグイン
x264guiEx 2.xx (ミラー)
- x264を使用したH264出力
- x264guiExの導入>
- x264.exeはこちら>

x265guiEx (ミラー)
- x265を使用したH.265/HEVC出力
- x265.exeはこちら>

QSVEnc + QSVEncC (ミラー)
- QuickSyncVideoによるH264出力
- QSVEncCはコマンドライン版
- QSVEncC 導入/使用方法>
- QSVEncCオプション一覧>

NVEnc + NVEncC (ミラー)
- NVIDIAのNVEncによるH264出力
- NVEncCオプション一覧>

VCEEnc + VCEEncC (ミラー)
- AMDのVCEによるH.264出力

ffmpegOut (ミラー)
- ffmpeg/avconvを使用した出力

自動フィールドシフト (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: aji様

エッジレベル調整MT (ミラー)
- エッジレベル調整の並列化/高速化
- SSE2~AVX対応
- オリジナル: まじぽか太郎様

バンディング低減MT (ミラー)
- SSE2~AVX2による高速化版
- オリジナル: まじぽか太郎様

PMD_MT (ミラー)
- SSE2~FMA3による高速化版
- オリジナル: スレ48≫989氏

透過性ロゴ (ミラー)
- SSE2~FMA3によるSIMD版
- オリジナル: MakKi氏

AviutlColor (ミラー)
- BT.2020nc向け色変換プラグイン
- BT.709/BT.601向けも同梱

○その他
x264afs (ミラー)
- x264のafs対応版

aui_indexer (ミラー使い方>)
- lsmashinput.aui/m2v.auiの
 インデックス事前・一括生成

auc_export (ミラー使い方>)
- Aviutl Controlの
 エクスポートプラグイン版
 エクスポートをコマンドから

aup_reseter (ミラー)
- aupプロジェクトファイルの
 終了フラグを一括リセット

CheckBitrate (ミラー, 使い方, ソース)
- ビットレート分布の分析(HEVC対応)

チャプター変換 (ミラー使い方>)
- nero/appleチャプター形式変換

エッジレベル調整 (avisynth)
- Avisynth用エッジレベル調整

メモリ・キャッシュ速度測定
- スレッド数を変えて測定

○ビルドしたものとか
L-SMASH (ミラー)
x264 (ミラー)
x265 (ミラー)

○その他
サンプル動画
その他

○読みもの (ミラー)
Aviutl/x264guiExの色変換
動画関連ダウンロードリンク集
簡易インストーラの概要

○更新停止・公開終了
改造版x264gui
x264guiEx 0.xx
RSSリンクの表示
リンク
QRコード
QR