2023-08-31 22:43:23 @uaa@social.mikutter.hachune.net
icon

オクトラⅡ、画質最高で時々ハングする問題が解決したかどうか試さないといかんのかな…

2023-08-31 22:42:33 @uaa@social.mikutter.hachune.net
icon

Arcのドライバ、8/23リリースの31.0.101.4669に更新したけどdistribued.net clientの(cl-std=1.1非対応)問題は解決してないっすね。バイナリパッチをdnetc.exeに当てろってことで良いんですかね…

2023-08-31 22:40:32 @uaa@social.mikutter.hachune.net
icon

とりあえず自分のコーディングスタイルを見直すきっかけにはなった。一応style(9)準拠にしてるのでそれを継続ってことで。

2023-08-31 22:39:32 @uaa@social.mikutter.hachune.net
icon

;でインデント、面白いアイデアだとは思うけど…

for (i = 0; i < 200; i++)
do_something();

みたいなケースへの対応は難しいんじゃないかなあ。

まあコーディングスタイルを新しく作ってるようなもんだから、たとえfor()だのifだのに続く処理が一行しか無くても必ず{}で括れというスタイルを強制した上で;でインデントしろよなー、ということなんだろうけど。

2023-08-31 22:36:53 @uaa@social.mikutter.hachune.net
2023-08-31 22:10:47 くりむ 失われた週末の投稿 klim0824@mstdn.nere9.help
icon

乗るしかない、このビッグウェーブに

[Xユーザーのふもさん: 「え、まだタブやスペースでインデントしてるの?時代遅れじゃない? 今どきはセミコロンだよ。 t.co/YMEFTwyXI2」 / X]( twitter.com/fumokmm/status/169 )

2023-08-31 21:55:40 @uaa@social.mikutter.hachune.net
icon

tiger lake(11th Gen)以降のCeleron/PentiumはAVX2対応持ってるので、一生懸命SSE対応したところで意味無いんだよね実は。

2023-08-31 21:46:11 @uaa@social.mikutter.hachune.net
icon

LPCNet、本家はxiphのなんだけど…FreeDV2020向けのdrowe67版をここしばらく触っていて、本家からかなり乖離しちゃってるから少しメンテしないといけないのかもね(SSE周りとか)というのがあらすじ。

2023-08-31 21:44:46 @uaa@social.mikutter.hachune.net
icon

8x4(sparse_sgemv_accum8x4)対応は取り込めないかなーと思ってみてみたけど、これはかなり影響範囲が大きそうなのでやめた方が良いのかも github.com/xiph/LPCNet/commit/

なので、結局は
- vec_sse.hは廃止
- vec_avx.hをそこそこ新しくする
- SSEの時もvec_avx.hを使うようにお願いする
という対応が今できる最善ってことになるか。vec.hの挿げ替えもちょっと危ないかな。

2023-08-31 21:24:14 @uaa@social.mikutter.hachune.net
icon

パンを食った枚数をいちいち覚えちゃいないのと同様、投げたPRなんていちいち覚えちゃいないよ。

2023-08-31 21:23:35 @uaa@social.mikutter.hachune.net
icon

…ってこんなこと書いてると「ロクにテストもせず何やってんの」と言われそうだなあ。あん時何やってたんだっけ自分というのを振り返ってるだけなんだが…

2023-08-31 21:22:14 @uaa@social.mikutter.hachune.net
icon

あと、これも検証。defined(__AVX__)であればvec_avx.hを通すことでAVX化は可能、defined(__SSE__)が無い場合はvec_avx.hも通さないしSSE化もしない(それ以前にビルドエラーで止まる)。

なので、defined(__SSE__)でなんかする、でSSE対応してたという過去の話についてもまあ(やってることが怪しいとはいえ)多少の意味はあったということか。

2023-08-31 20:59:11 @uaa@social.mikutter.hachune.net
icon

一応供養のために動作テストをしてみたけども…

- vec_sse.hの結果はベクタ命令使わない場合と同じ(vec_avx.hの結果は少し異なる)
- 当然だけどvec_avx.h使えばSSE/AVX同じ結果になる
- vec_sse.hだと16.6sec, vec_avx.hでSSE化すると8.8sec(AVXと遜色ない結果になる)

やっぱ廃止で正解かな?出力結果は間違いじゃなかったみたいだけど。

2023-08-31 20:28:05 @uaa@social.mikutter.hachune.net
icon

自分で言うのもなんだけど、vec_sse.hなんてクソ(を放り込んだのは自分)を放り込む前に、何故vec_avx.hがSSE対応してるかを見抜けなかったのかと当時の自分に説教したい…という訳で、きちんと尻を拭おうと思います。ごめんなさい。 github.com/drowe67/LPCNet/pull

Web site image
deprectate vec_sse.h by jg1uaa · Pull Request #60 · drowe67/LPCNet
2023-08-31 07:20:35 @uaa@social.mikutter.hachune.net
icon

ほぅ…

2023-08-31 07:20:24 @uaa@social.mikutter.hachune.net
2023-08-31 01:53:05 #weepjp :kao_oyoyo:の投稿 weepjp@fedibird.com
icon

このアカウントは、notestockで公開設定になっていません。

icon

Nonchalant(Radio Edit)/Dack Sauce…Radio Editじゃないの( youtube.com/watch?v=xDbvqXmY-u )を聞くことが多いけど、Radio Editも良いっすね。

Attach YouTube
2023-08-30 20:45:30 @uaa@social.mikutter.hachune.net
icon

@reasonset どうも自分の引いたblog記事が引用していた文献が古かったのでradeontopを紹介しちゃった感じですね…(確かに今はradeonドライバではなくamdgpuドライバなので)

Monitoring AMD, Intel and NVIDIA graphics card usage under Linux rk.edu.pl/en/monitoring-amd-in (12/May/2014)

Web site image
Monitoring AMD, Intel and NVIDIA graphics card usage under Linux
2023-08-30 20:31:48 @uaa@social.mikutter.hachune.net
icon

リスキリングとかいうのって、リストラと同じく、首切りの言い換え語という理解をしている

2023-08-30 20:31:00 @uaa@social.mikutter.hachune.net
2023-08-30 20:27:02 ふぇのまー(キタカミのすがた)の投稿 Phenomer@social.mikutter.hachune.net
icon

このアカウントは、notestockで公開設定になっていません。

2023-08-30 07:45:01 @uaa@social.mikutter.hachune.net
icon

おおおおおお

uaa@DESKTOP-251U0UF:~/LPCNet/build.opencl/src$ time cat ~/test.out | ./lpcnet_de
c -s > /dev/null
direct split VQ
dec: 3 pred: 0.00 num_stages: 4 mbest: 5 bits_per_frame: 52 frame: 30 ms bit_rate: 1733.33 bits/s
64 1 1 16 128 1152 160 160 160 160
ftest cols = 2002

real 44m18.963s
user 21m12.529s
sys 20m38.585s
uaa@DESKTOP-251U0UF:~/LPCNet/build.opencl/src$

2023-08-30 07:30:33 @uaa@social.mikutter.hachune.net
icon

Windows上のタスクマネージャで見るにSVM化前→後を比較すると
Copy 21%→92%
Compute 9%→63%ということで、前よりはArcが仕事をしてくれるようにはなったんだと思う。とはいえCPU単体よりはるかにおっそいし、HD630よりも遅い結果になりそう(HD630ならもう終わっている時間)。LinuxでもCPUの仕事っぷりはtopで見られるとして、GPUに対する同様なツールを探してみる必要があるのかなあ…って良いもんあるじゃないですか
Linux で GPU 負荷を調べる dskjal.com/linux/check-gpu-loa

Linux で GPU 負荷を調べる
2023-08-30 06:51:07 @uaa@social.mikutter.hachune.net
icon

あとはこれをArc上で動かせばいいのだけど…さて、何時間かかるのやら。

2023-08-30 06:50:44 @uaa@social.mikutter.hachune.net
icon

最後に落ちる問題を解決+ちょっといじっても、変わらない(Linux/HD630)。

uaa@emeraude:~/LPCNet/build.opencl/src$ time cat ~/test.out | ./lpcnet_dec -s > /dev/null
direct split VQ
dec: 3 pred: 0.00 num_stages: 4 mbest: 5 bits_per_frame: 52 frame: 30 ms bit_rate: 1733.33 bits/s
64 1 1 16 128 1152 160 160 160 160
ftest cols = 2002

real 24m8.163s
user 12m36.059s
sys 12m26.866s
uaa@emeraude:~/LPCNet/build.opencl/src$

2023-08-30 06:49:02 @uaa@social.mikutter.hachune.net
icon

CPUじゃないデバイスをいじって計算させるって面白いなということでしばらく遊んでみたけど…性能を出すには本当に難しい。CS学んでアルゴリズムとかデータ構造とかちゃんと分かってないと扱えないというのは言い過ぎかもしれないけど、なんかそんな気がする。

2023-08-30 06:47:42 @uaa@social.mikutter.hachune.net
icon

多分SSE/AVX/NEONで書いたところだけOpenCLで書き直すというやり方じゃ全然だめで、もう少し大きい単位…ロジック丸ごとをOpenCL化するとかしないと速度出ないはず。データもCPU/GPUのどっちに寄せるかとかも考えないといけないし(極端な話入力と結果だけCPU、他全部GPUとかそうでもしないと)。あとは処理の粒度であまりにも細かいとやっぱりCPUの方が融通利くし速いとか、そういうのもありそう。でもどれくらいの大きさにしないと利点感じないのかなというのはある。RC5-72 crackingみたいに軽い(?)データでも計算数が多いのはGPU有利って話もあるし。

2023-08-30 06:43:52 @uaa@social.mikutter.hachune.net
icon

OpenCL全っ然分からない…なにこの難しいの…使えば速くなるっていったじゃん(いってない)

2023-08-30 06:42:30 @uaa@social.mikutter.hachune.net
icon

面倒だから分けたままにしちゃう

2023-08-30 06:41:13 @uaa@social.mikutter.hachune.net
icon

ほんとに速度変わんない…24分かかってる(おい…)

2023-08-30 06:40:47 @uaa@social.mikutter.hachune.net
icon

ん-む、重み付け用の定数を別のSVMにマップしてそっちはmap/unmap対象から外したけど速度への寄与はなさそうだな…面倒だから以前と同じくワークバッファと一絡げにしちまおうか

2023-08-29 22:38:52 @uaa@social.mikutter.hachune.net
icon

我ながらくっだらないことに時間使ってるなーとは思うが…

2023-08-29 22:37:50 @uaa@social.mikutter.hachune.net
icon

lpcnet_createでvector_buffer_allloc()してるけどこれに対してfree()するのはさすがに問題。ベクタエンジン使わない場合はcalloc()/free()で、使う場合はvector_buffer_alloc()/vector_buffer_free()のペアにしないといけない。直したところで、CPUより遅いって結論である以上ぶん投げてもいいんだけど…一応Arcでもどの程度遅いのかは見てみたい(わくわく)なので。

とりあえず明日以降の作業だな。

2023-08-29 22:33:17 @uaa@social.mikutter.hachune.net
icon

ってことはSVM化でマジ遅くなったのかよ…

2023-08-29 22:33:00 @uaa@social.mikutter.hachune.net
icon

(gdb) backtrace
#0 0x00007f05fa9d8d4a in __GI___libc_free (mem=0x7f05e2689000)
at ./malloc/malloc.c:3362
#1 0x00007f05fac0a228 in lpcnet_destroy ()
from /home/uaa/LPCNet/build.opencl/src/liblpcnetfreedv.so.0.5
#2 0x00007f05fac0aa07 in lpcnet_freedv_destroy ()
from /home/uaa/LPCNet/build.opencl/src/liblpcnetfreedv.so.0.5
#3 0x00005586b00779d1 in main ()
(gdb)

ふーむ…?多分mallocしてないものをfreeしようとしたとかそんな感じの話か。んでもってlpcnet_destroy()呼んでるってことは一応最後までは走ってる(最後の最後でコケると)。

2023-08-29 21:14:47 @uaa@social.mikutter.hachune.net
icon

(ぷるぷる震えています、あまりにもあまりなので)

2023-08-29 21:13:50 @uaa@social.mikutter.hachune.net
icon

あ゛ー、core吐かせる設定せずにジョブ動かしてsegvしたからでばっぐできないあああああああああああ30分近くまたやり直しああああああ><dfjklgfs;djklgs

2023-08-29 21:10:38 @uaa@social.mikutter.hachune.net
icon

氷河期世代とっ捕まえて「お仕事があるだけ感謝しな、あ?」というのがイマドキのスタンダードなんでしょう?(と敢えて煽り気味に

2023-08-29 20:58:05 @uaa@social.mikutter.hachune.net
icon

でもさ、採用側って履歴書見て「このスペックでは…」って考えてるじゃん。フツーにさ。

他人にスペックという言葉を使っている人をみてゾッとした (2023/8/29) orangeitems.com/entry/2023/08/

Web site image
他人にスペックという言葉を使っている人をみてゾッとした
2023-08-29 18:50:21 @uaa@social.mikutter.hachune.net
icon

メモリリークは潰したと思ったんだが…まだ居たのかな

2023-08-29 18:49:33 @uaa@social.mikutter.hachune.net
icon

SVM化(Coarse)してみたのをLinux/HD630で動かしてみたけど、昔ながらのEnqueue{Write,Read}Bufferした方が速いってどういうことよ…(しかも落ちてるw)

dev/null
direct split VQ
dec: 3 pred: 0.00 num_stages: 4 mbest: 5 bits_per_frame: 52 frame: 30 ms bit_rate: 1733.33 bits/s
64 1 1 16 128 1152 160 160 160 160
ftest cols = 2002
Segmentation fault

real 24m7.599s
user 12m32.813s
sys 12m26.253s
uaa@emeraude:~/LPCNet/build.opencl/src$

2023-08-28 20:20:42 @uaa@social.mikutter.hachune.net
icon

音声処理程度ならもはやCPUで十分に賄える、より処理速度を必要とする重い仕事でないとGPUを活かせない…ということなんだろうなあ。

2023-08-28 19:58:49 @uaa@social.mikutter.hachune.net
icon

そして当然ながら速度は全然出ていない。CPUにやらせた方が遥かにマシなレベル。

2023-08-28 19:57:54 @uaa@social.mikutter.hachune.net
icon

うーん、必要なデータをVRAM上に置くようにしたら動き出したけど…メモリリークが酷い…どっかで借りたものは返していないところがあるのかも。

2023-08-28 07:35:54 @uaa@social.mikutter.hachune.net
icon

あんまし一般的じゃないんだろうが、extern float foobar[256];みたいにサイズを明示するしかないかなあ。

2023-08-27 22:23:21 @uaa@social.mikutter.hachune.net
icon

メルカリでの相場は知らないんだけど、どうなんだろ(ヤフオクよりこっちの方が古本買うのに便利な時があるような)

2023-08-27 22:21:03 @uaa@social.mikutter.hachune.net
icon

ビギナートランジスタ読本などの、奥澤清吉先生の本…最近はオークションでも出物は少ないし値段も上がってる感じ。

2023-08-27 22:19:03 @uaa@social.mikutter.hachune.net
2023-08-27 21:59:30 Izumi Tsutsuiの投稿 tsutsuii@social.mikutter.hachune.net
icon

このアカウントは、notestockで公開設定になっていません。

2023-08-27 20:20:52 @uaa@social.mikutter.hachune.net
icon

fdata-sectionsでデータをセクション分けして(そのサイズも取れる?)、それをVideo-RAMへ転送するコードを書けばいいんだろうか…なんかROM化コードと同じようなことをやろうとしているような気がしなくもなく。

2023-08-27 16:51:05 @uaa@social.mikutter.hachune.net
icon

(伏せる)一択じゃん…(他を知らないので)

2023-08-27 16:50:48 @uaa@social.mikutter.hachune.net
2023-08-27 16:50:09 #weepjp :kao_oyoyo:の投稿 weepjp@fedibird.com
icon

このアカウントは、notestockで公開設定になっていません。

2023-08-27 16:00:49 @uaa@social.mikutter.hachune.net
icon

@1f46356a832a4b2d65c12e9f7c6fd8608a285b1efa896773f4f67c6ee9e33e21 なんかこの辺のバッファの内容もGPU側から触れるように細工しないとダメっぽい

2023-08-27 15:58:54 @uaa@social.mikutter.hachune.net
2023-08-27 15:58:49 uaaの投稿 1f46356a832a4b2d65c12e9f7c6fd8608a285b1efa896773f4f67c6ee9e33e21@mostr.pub
icon

このアカウントは、notestockで公開設定になっていません。

2023-08-27 15:57:54 @uaa@social.mikutter.hachune.net
icon

uaa@emeraude:~/LPCNet$ grep static build.opencl/_deps/lpcnet-src/nnet_data.c
static float gru_a_embed_sig_weights[294912] = {
static float gru_a_embed_pred_weights[294912] = {
static float gru_a_embed_exc_weights[294912] = {
static float gru_a_dense_feature_weights[147456] = {
(省略)
uaa@emeraude:~/LPCNet$

なんか知らんソースを自動生成して食わせてんのかよ…💢

2023-08-27 15:41:02 @uaa@social.mikutter.hachune.net
icon

うーん、思いつくところは書き換えたんだけど、どうもSVMとして確保したメモリではないポインタを食わせようとしている箇所があるようで、「そんなアドレスは知らぬわ」と蹴られるんだよなあ

2023-08-27 11:44:25 @uaa@social.mikutter.hachune.net
icon

nnet.cおよびlpcnet.cの、該当するコードの該当する関数が使うバッファを、ベクタエンジン用のバッファに挿げ替えるという面倒な作業があるけど…手間がかかるだけで(再帰とかstaticとか使ってなさそうだと)厳しいものではないと思う多分きっとおそらく。

2023-08-27 11:00:21 @uaa@social.mikutter.hachune.net
icon

そこまで手をかけても、実はAVXの方が早いのでした残念、という結果になる可能性は高いと思うよ?

2023-08-27 10:59:51 @uaa@social.mikutter.hachune.net
icon

test_vecのSVM対応は終わった。ここから本番…nnet他全て必要なものを、SVM対応しないといけない(面倒臭い)。