はてなキーワード: OpenCLとは
DeepLearningモデル変換ツール全部盛り巨大Docker環境の構築
Introduction
めんどくさい。この世のすべての環境構築がめんどくさい。依存関係破壊祭りでツラい。したがって、Github Actions 上でモデル変換にまつわる環境を全部取り込んで docker build して超巨大全部盛りDLモデル変換環境を構築した。足りない周辺のツールは各自追加インストール。GUI や iGPU/dGPU や ホストへ接続された USB機器 へコンテナ内からアクセスできるため実行環境としてもそのまま使える。ただし、とにかくImageがデカイ & セキュリティガバガバ。GitHub Actions のコンテナビルドの容量制限に引っかかることを回避するためのトリックを仕込んである。
2. Environment
Python 3.6+
TensorFlow v2.6.0+
PyTorch v1.10.0+
TorchVision
TorchAudio
OpenVINO 2021.4.582+
TensorRT 8.2+
pycuda 2021.1
coremltools
onnx
onnxruntime
onnx_graphsurgeon
onnx-simplifier
onnxconverter-common
onnx-tensorrt
onnx2json
json2onnx
tf2onnx
torch2trt
onnx-tf
tensorflow-datasets
tf_slim
edgetpu_compiler
tflite2tensorflow
openvino2tensorflow
gdown
pandas
matplotlib
https://www.imdb.com/de/list/ls599665763/
GPGPUアプリケーション開発の環境およびAPIとしては、ハードウェア内部構造自体が汎用性を増したDirectX 10世代の統合型シェーダーアーキテクチャGPUの登場以降、NVIDIAによるGPGPU専用の統合開発環境「CUDA」や、AMDによるGPGPU基盤「AMD Stream」(旧称ATI Stream)、そしてクロノス・グループによる標準規格「OpenCL」が現われ、GPGPU活用の幅が広がりつつある。 https://ja.wikipedia.org/wiki/%E3%82%AF%E3%83%AD%E3%83%8E%E3%82%B9%E3%83%BB%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97
P2 instances, designed for general-purpose GPU compute applications using CUDA and OpenCL, are ideally suited for machine learning, high performance databases,
Powerful, Scalable GPU instances for high-performance computing
不利かどうかは娘が決めるというのは一部理解できなくもないから一部分は謝罪したい
しかしWWDCのOpenCL/GL非推奨発表はどれだけ冷静に客観視しても思い切り過ぎてる発表ですよ
現状Metalを活用した研究・活用はOpenCL/GLと比較して乏しすぎるのは事実で、情報量・活用事例的に不利なんですよ
何処のDeveloper系・研究系の記事を見てもOpenCL/GLばかりだ
http://d.hatena.ne.jp/faith_and_brave/20100220/1266673222
まず第一にエンタープライズでの開発が考慮されていない。エンタープライズの開発だと100人200人 マスタークラスから ジュニアーまで様々なレベルの開発者が携わる。
その中で重要になってくるのは可読性。
はっきり言って、歴史的な可読性を犠牲にして効率が上がるならともかく、気持ちの問題程度の効率では意味がない。
第2に
スレッドとファイバーの違いぐらいわかれ、わざわざスレッド起こしたらコンテキストスイッチにどれだけコスト食うんだよ。
関数コールするとレジスタとかが、スタックにPUSHされるんだよってわからん奴が、IF書くなと同じで、スレッドってコンテキストスイッチの塊なんだよってのがわかんないのに下手にスレッド書かせるな。
3にラムダ式・・・いらん・・・必要なのは曲芸じゃない、可読性。可読性を犠牲にして早くなるならともかく・・・
4にforeachではlastを変数に取るな。途中でReallocしたり、eraseしたりしたときに余計なバグを生んで面倒だ。レビューの時も邪魔。速度?速度が必要な背景でSTLのVector使うな。配列使うかポインタ使え。
なんつーか、トータルで見て、次はC++と各種OpenCLとかGLとかのライブラリの集合だな。C++0xはまともに使う人もいなさそう。正規表現とかもライブラリ使えば良いし、そもそもC系列ならBisonとかLRとかだろうと。C系列の使い手ならBNFを使え。正規表現使いたければそれこそ、Perl使え。