AIの片隅で(23) M5StickV, V-Trainingその後

JosephHalfmoon
Joseph Halfmoon

先週、インタフェース誌10月号のAIチップ特集を読みながら「メールが届くのを待っています」などとブーたれていたのです。M5StickVのWeb上でのAIトレーニング環境であるV-Training、ここに来て、先月何かの理由で詰まってしまっていたQueueが解消されて動き出したようです。処理完了のメールがとどき、学習済のデータセットをM5StickVにセットすれば、ちゃんと目論見どおり認識をば致しまする。待ち行列解消さえすればこんなにお手軽なものは無い? “AIの片隅で(23) M5StickV, V-Trainingその後” の続きを読む

AIの片隅で(22) M5StickVのお引越し、再起動

JosephHalfmoon
JosephHalfmoon

直ぐ何かに影響されます。aNo研著のMAiX本を読み、約7カ月ほど「眠っていた」Kendryte K210搭載の小さな「AIカメラ」M5StickVを復活させねば、と決意いたしました。ちょうど新しいPC(といっても誰かのお古をクリーンインストールしたもの)が手に入ったので、いろいろ入れ過ぎてカオス気味のメイン機からついでにM5StickV関係をお引越しさせよう、と考えました。しかし、AI業界で7カ月は長い。いろいろ変わっていた。。。

“AIの片隅で(22) M5StickVのお引越し、再起動” の続きを読む

AIの片隅で(21) Lenna様のお写真

JosephHalfmoon
JosephHalfmoon

折角、Kendryte K210搭載のM5StickVが手元にあるというのに、AIまでたどりつかず、SDカードやらGPIOやらと戯れている毎日。ちょっとAIの方に一歩踏み出すべいと思いつつ、本日も時間も気力もない。。。そんなおり、装置にプリインストール?されている boot.py、顔認識プログラムを読んでみることにしました。確かに顔認識しているけれども、小さい画面に表示されるだけ。 “AIの片隅で(21) Lenna様のお写真” の続きを読む

AIの片隅で(20) Kendryte K210がくる

JosephHalfmoon
JosephHalfmoon

別シリーズで、「M5StickV+出してくだされ、私は待っておりますで」などと書いてしまいましたが、結局、待ちきれなくなって買ってしまいました。

M5StickV

Kendryte K210 SoCプロセッサ搭載機、CPUはRISC-V、そしてEdge AI向けのNeural Network Processor(KPU)搭載であります。しびれるスペックだな。

“AIの片隅で(20) Kendryte K210がくる” の続きを読む

AIの片隅で(19) CuPy、NumPy、単精度、倍精度

JosephHalfmoon

前回の投稿でChainer開発終わって寂しい件を書かせていただきました。しかし、CuPyの方は開発を益々?継続のようであります。そういえば、Chainerの裏でCuPyが動いているのは知っていましたが、直接使ってみたことってなかったかも。それにちょっと気になるのがNumPyと凄く互換性が高く見えるけれど、「所詮」CPUとGPUの違いあり、精度の違いなどどう処理されているのでしょうか。とりあえずやってみました。 “AIの片隅で(19) CuPy、NumPy、単精度、倍精度” の続きを読む

AIの片隅で(18) Chainer、開発の終わり

JosephHalfmoon

12月5日づけで、ちょっとショックなプレスリリースが出てました。日本を代表するAI(人口知能の方、最近投稿に頻発しておりますAugumentation Indexではありませぬ)ベンチャー企業であるPreferred Networksさんの以下のプレスリリースであります。

Preferred Networks、深層学習の研究開発基盤をPyTorchに移行

“AIの片隅で(18) Chainer、開発の終わり” の続きを読む

AIの片隅で(17) n,c,h,w,k,p,q,u,v,r,s なんのこっちゃ?

JosephHalfmoon

前回、cuDNNのサンプルプログラムを動かしていて、Jetson nanoでは残念ながら動かないところがある話を書きました。しかし、それ以上に分からなかったのが、サンプルプログラムの引数です。こんな感じ。

-c2048 -h7 -w7 -k512 -r1 -s1 -pad_h0 -pad_w0 -u1 -v1

まあね、これがコンボリューション・レイヤの計算のための引数であると分かっているので、cはchannel、hはheightなどと想像も多少はつくのです。しかし、何だか分からない引数もあり。多分、AIプロの人はこういう記号を見ただけで分かりあえるのかもしれません。しかし、私などは、まず記号の使い方からちゃんと調べて頭に入れて置かないとダメだな、と思い至りました。 “AIの片隅で(17) n,c,h,w,k,p,q,u,v,r,s なんのこっちゃ?” の続きを読む

AIの片隅で(16) block, thread, warp, lane

JosephHalfmoon

AIをタイトルにしながら、低レベルな話ばかり書いていますが、それもこれも

Jetson Nano

は、AIネタと決めたからなんであります。先は長いですが、やっていく先にはAIにもつながりましょう。さて、月曜日に cuda-gdb でハマった話を投稿いたしましたが、デバッガが立ち上がったところでおしまいになってました。CUDA用のデバッガらしい話題皆無。というわけで今回は、実際にcuda-gdbを動かして、CUDAのサンプルプログラムの中身をのぞいてみます。 “AIの片隅で(16) block, thread, warp, lane” の続きを読む

AIの片隅で(15) nvccとgprof, oprofile

JosephHalfmoon

前回はJetson nano上で nvprof を使い、GPU実行部分のプロファイリングをちょっとだけ触ってみました。しかし、本来はCPU部分のプロファイリングもできる筈の nvprofですが、このプラットフォームではCPUのプロファイリングは駄目だと警告がでます。そこで、CPU部分のプロファイリングについては nvcc生成のCUDA使用の実行ファイルを、定番のgprof と oprofile の2つでプロファイリングしてみました。 “AIの片隅で(15) nvccとgprof, oprofile” の続きを読む

AIの片隅で(14) Jetson Nano、nvprof

JosephHalfmoon

Jetson Nanoを使っていくために、大事な

/usr/local/cuda (私の環境では実体は /usr/local/cuda-10.0)

の中のコマンドなどについて順に実際に動かして確かめておこうと思い立ちました。一番といえばやはり nvcc でしょうが、サンプルプログラムをコンパイルするのに既に使っているし、かといってその機能を網羅しようとしたりすればどれだけかかるか分かりません。今回は、使う人は使うけれども、使わない人は使わないんじゃないかと想像する、

nvprof

から動かしてみることにいたしました。コマンドラインのcuda用プロファイラですね。

“AIの片隅で(14) Jetson Nano、nvprof” の続きを読む