30-Aug-2023
[なつのじゆうけんきゅう?]

17-Aug-2023で試したdrowe67/LPCNetのOpenCL化、OpenCL1.xのclEnqueueReadBuffer()/clEnqueueWriteBuffer()で散々な結果だったので…OpenCL 2.0以降で使えるSVMを使ってみたらどうだろうかとかなり強引な修正を入れて試してみました

雑に測った結果だと、HD630では9分→24分、Arc A770では146分→44分…CPUのベクタ演算命令を使った部分をなーんも考えずにOpenCLへ置き換える程度では全然高速化しないというかむしろ激しく低速化するということだけは確かです。画像処理のような大規模な物であれば話は変わるのでしょうが、今回の対象(LPCNet)はニューラルネットワークを使用した音声CODECです。AVX命令があれば十分に対応できる程度の規模ということになるのでしょう(それだけAVX命令が強力ということもできますかね)。

それでもOpenCLで何かしてみる、となるとLPCNet自体をOpenCLで書いてしまうという方向性になりそうですが、かけた労力に見合う物が手に入るとはあまり思えないのでここで退くのが良さそうです。CPUとは違う方向性の、強力な計算機に触れるのが楽しかったとしても。

という訳で、子供達の新学期は始まってしまいましたから…夏休みの宿題の提出には全然間に合わなかったのですが、夏の自由研究はこんな感じにまとめておきます。55.6kg(21:35)

27-Aug-2023
[えっと]

Intel HD530はSVM Fine Grain Bufferまで対応してるのであれば、その後継たるHD630も使えるはず…なのに、SVM Coarse Grain Buffer止まりなのは何故なんでしょう。リンク先のblogはWindows10上のVisual Studio 2015での話なので、Debian12にapt-get install intel-opencl-icd opencl-headers他色々で突っ込んだ場合は状況が違うのかも。

医療情報技師能力検定試験なるものを20-Aug-2023に受けてみましたが、これどうなんですかね。X(Twitter)を見ていると薬剤師でも持っている人がちらほらと散見されるんですが…お仕事とか転職とかの役に立つのかなーって。まあ自己採点による試験結果が結構厳しいので、受かったら何をしようかという考えは捨てておきます。

ASRock Intel Arc A770 Phantom Gaming D 8GB OC、アイドル時のGPU温度は52〜53℃くらいなんですがこの状態だとファンも回らずにヒートシンクだけで冷やしているみたいです(0dB silent coolingなんて謳っているくらいですし)。その影響かは分からないのですが、Intel Arc ControlのパフォーマンスグラフのFan speedの項目、ファンが回り始めるまでは表示されません。おかしいどこかでファン回転数のグラフがあったはずなのに…と思っていたのです。

今週も忙しい一週間になりそう。56.9kg(22:15)

19-Aug-2023
[GPU届きました(8)]

INTEL-SA-00812に該当するかもしれないASRock Intel Arc A770 Phantom Gaming D 8GB OCですが、ASRockへの問い合わせの結果、問題ないとの回答を得ています。Intelからも、ASRockに聞いてくれとの返事の後に追加で問題無いという回答を得ているので、多分大丈夫なんでしょう。

INTEL-SA-00812の表題が「Intel® Arc™ Graphics Cards Advisory」となっている点がちょっと気になっていて、Intel Arcを搭載した全てのグラフィックカードに脆弱性があるのか、あるいはArcを搭載したIntel製のグラフィックカードに限定されるのか、どちらの意図なのかが自分の英語力では読み取れません。

(ここから妄想)おそらくArc GPUに脆弱性はあるものの、ファームウェアもしくはマイクロコードの更新で対処できるので問題にはならないが、特定の時期に作られたIntel製のボードではES品のArcを使っていたかあるいはファームウェア格納用のROM容量が不足する等の理由で対応できない…というシナリオを考えてみたのですが、どこまで当たってますかね?(ここまで妄想)

distributed.net OpenCL版クライアントがUHD730/Arcで動作しない問題については、pull requestが出ているものの放置されている状況です。修正内容を見るに、clGetProgramBuildInfo()の返すログのサイズが想定よりも大きすぎるのでこれに対応できるようバッファを確保することと、コンパイルオプションに-cl-std=CL1.1を指定するとエラーが起こるのでこれを廃したという内容になっています。

-cl-std=CL1.1を指定してコンパイルした場合に何が起こったか、koturn/oclcを使ってログを取得してみました。これは…誰が何をどう修正すれば良い問題なのか、分からなくなってきますね…55.0kg(14:45)

27-Aug-2023補足:INTEL-SA-00812の件、Intelに再度確認してみましたが「Intel® Arc™ Graphics Cards Advisory」→Intel製のArc搭載カードという意味だそうです。なので、「Intel Arc GPUに脆弱性」という表現は正しくないことになりますね。

17-Aug-2023
[なかなか難しいですね…]

OpenCLなるものを使えばGPUに計算させることができる、ということで以前AVX/NEON→SSE化を試したdrowe67/LPCNetのOpenCL化を試してみました。i7-7700上での結果は…AVXだと7秒くらいで済むものが、OpenCLだと9分と異常に遅くなってしまっています(計算結果が正しいかもあまりよく分かっていません…test_vecは通しているとはいえ、これは全てのベクタ化が問題なく動作することを検証するものではありませんし)。

今回の結果が散々なのは、計算の規模が小さすぎる割にCPU←→GPU間のデータ転送が多すぎるという原因があるようなので、GPGPUをするのであればその逆をしないと意味が無いということになるのでしょう。全ての処理データをGPUに預け、数多くのスレッド(ということにしておく)で一気に処理を行い、それをCPUに返す…音声処理程度なら今の時代のCPUで十分に賄えるので、それよりも規模の大きな物を計算対象とするしかないようです(なので生成AIが今のホットな話題になると)。

とりあえず、CPU←→GPU間のデータ転送のコスト、GPU上での演算コストがどの程度かというのを知りたいところですが、何か良い道具はありませんかねえ…?

脆弱性を抱えているかも?なIntel Arc A770の件は、Intelへ問い合わせたところボードメーカーへ聞いてくれとの回答を得ています。という訳で(Intelへの問い合わせと同じタイミングで)ASRockへも問い合わせを出してはいるのですが、こちらは未だに返答がありません。55.7kg(08:10)

13-Aug-2023
[GPU届きました(7)]

JVNVU#99796803 Intel製品に複数の脆弱性(2023年8月)に、INTEL-SA-00812: Intel Arc graphics cards A770およびA750が挙げられており、「2022年10月から2022年12月までに販売された次の製品に関するサポートについては、開発者にお問い合わせください。 」とあるのですが…

timg_20230813_044134_532.jpg

2022/11/11に富山本郷店にあったと思しきArc A770…もしかして?もしかして??56.2kg(07:05)

11-Aug-2023
[GPU届きました(6)]

電源、玄人指向の KRPW-BK750W/85+を載せると電源が入らなくなるので、購入元のDOSPARAに相談してDeepCool PQ750Mに換えてもらいました(差額も払っています)。こちらの電源だと全く問題なくマシンが起動しているので、やはり電源は重要ですね。あと、通販購入品であっても店舗対応可能というDOSPARAのサービスには本当に助かりました。八王子・町田へ行くことは可能なものの、アクセスしやすい座間相武台に店舗があるので今後も何かあったときは頼ろうと思います。

PQ750Mを載せて問題なく動作することを確認後、ASRock Intel Arc A770 Phantom Gaming D 8GB OCを装備してこんな感じ。

timg_20230811_140510_942.jpg timg_20230811_141329_574.jpg

\30kを超える価格の部品に触れることは滅多に無いので、グラフィックボードの取り付けは結構緊張しました。

フルサイズのカードを挿す際は、カードを引っ掛けるための爪がケースに付いているのでこれを利用してカードを固定していたものですが…今の時代は流石にそうもいかないようなのでVGAサポートステイを使用してマザーボード等への負担を軽減します。写真ではちょっとステーが曲がってしまっているので、効果があるのかはちょっと心配です(撮影後に直してはいます)。

これを書いている時点では異常なく動作しており、これからOpenCLベンチマークプログラムbwoclを改造したコードを一晩回して(軽い?)負荷を掛け続けた状態で問題なく動くかを見ようと思います。OCCTを使った方が良いのかもしれませんけど。

なお、UHD Graphics 730の時と同じく、Arc 770でもWindows[x86/OpenCL]版のdistributed.net clientはError -11で動作しません。これはConfigure WSL 2 for GPU Workflowsを参考にGPUドライバを組み込んだWSL2上のUbuntu 22.04(jammy)でLinux[AMD64/OpenCL]版バイナリを動かした場合も同様です。そのうち直ることに期待したいものですが、果たしてどうなるでしょうかね…?57.3kg(22:15)

06-Aug-2023
[GPU届きました(5)]

ASUS Phoenix Radeon RX6400 4GB GDDR6は初期不良が認められ返品返金処理が完了したので、ASRock Intel Arc A770 Phantom Gaming D 8GB OCを試すことにしました。Intel A380であっても電源は500Wが必要→しかし現在使用中の電源は400W→だったら電源を交換してA750/A770にしよう→玄人指向のA750は売り切れているので次に手が届きそうなのがこれ、という理由です。決してお安くはありませんでしたが、ばんばん使って元を取っていくとしましょう。

マシンのフタを開けて電源を交換し、早速ボードを取り付けようとしたのですが…ケースの5インチベイとマザーのPCIeスロットの位置関係でグラフィックボードが入りません。流石にこれは想定外ということで、こんな風に

timg_20230805_171417_225.jpg timg_20230805_171443_951.jpg

リベットで付けられていた5インチベイは取り外しました。ここ数年光学ドライブは使っていないし、必要ならUSBで外付けの物をつなげれば問題は無いだろうという判断です。とはいえ、ベイで強度を保っていた部分もあるので昨年ケースをリフォームした際の端材を使って補強しておきます。

加工したケースにマザーボードと新しい電源(玄人指向 KRPW-BK750W/85+)を組み付けた状態で動作を確認すると、なんと動きません。電源スイッチを入れると一瞬ファンは回るもののすぐに切れてしまいます。元の電源(SCYTHE 剛短3プラグイン 400W)に戻すと全く問題なく動くので、一旦グラフィックボードのことは脇に置き、ケースを加工しただけの状態で全てを元に戻します。

…というところで今日は時間切れ。あまりのんびりしていると初期不良対応期間を過ぎて面倒なことになってしまうので、ちゃっちゃと進めないといけません。56.7kg(22:15)