現行の交通ルールと不完全な自動運転との間に発生している問題に関する記事を連続して読み、完全自動運転への道は遠いと改めて思います。もしかしたら、完全自動運転は、安心して運転を任せられるAIロボット運転手が完成する日、あるいは自動車が空を飛ぶ日まで実現しないのではという感想を抱いてしまいます。
“自動車の不都合な真実(4)交通ルールはAIにお任せ” の続きを読む
AIの片隅で(19) CuPy、NumPy、単精度、倍精度

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

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

前回、Jetson Nano(正確に言えば Jetson Nano Developer Kit Carrier Board)にPIRセンサ(人感センサ)を接続しようとしたら、ラズパイのときより抵抗値の小さなプルアップにしないと動かない件を書かせていただきました。今回はその理由を調べたので記録しておきます。結局、モジュールとしてのJetson Nanoではなく、それを搭載しているCarrier Boardの回路が理由でしたんですが。 “トホホな疑問(19) Jetson Nano、GPIO入力つづき” の続きを読む
鳥なき里のマイコン屋(71) Kendryte K210、RISC-V搭載AIチップ
Literature Watch Returns(9) 「世界のAIマイコン」特集、トラ技2019-11月号

店頭にならんで直ぐに購入させていただいたのですが、しばらく「寝かせて」しまいましたスミマセン、トラ技2019年11月号であります。特集「世界のAIマイコン」、しかし、その上の青文字を見逃してはいけません、64bit/400MHz RISC-Vです。世界のと言いつつ、その実態はK210(RISC-Vコア)の特集といって良いでしょう(そのくせRISC-Vそのものは前面に出てこない)。愛用のJetson NanoもRaspberry Piなども登場はしますがぶっちゃけ比較相手。しかし、このチップ、物欲をそそります。読めばボードが欲しくなる、そしてお手頃価格!そういえば前回も特集読んでJetson Nanoポチりました。どうしたものでしょ。
“Literature Watch Returns(9) 「世界のAIマイコン」特集、トラ技2019-11月号” の続きを読む
AIの片隅で(17) n,c,h,w,k,p,q,u,v,r,s なんのこっちゃ?

前回、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 なんのこっちゃ?” の続きを読む
トホホな疑問(10) cuDNN, サンプル動かないのもある

Jetson Nano楽しく使っております。JETPACK SDKという名のもとにインストールされているライブラリなどを順次確かめてみてもおります。今回は、DNN用のcuDNNというライブラリのサンプルプログラムを動かしてみていたときの疑問です。まあ、インストールイメージに含まれていたソースと言えども、必ずしも全てがJetson Nanoでは動かない、というだけのことなんでありますが。動かす前に気が付かないでいると、動かした後で何で?となるのです。 “トホホな疑問(10) cuDNN, サンプル動かないのもある” の続きを読む
AIの片隅で(16) block, thread, warp, lane

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

このところ、Jetson Nano用のOSイメージに最初から含まれているJetPackの中のツール類をあれこれ当たってみているのですが、ハングしました。デバッグに必須
cuda-gdb
です。これがハングしているのではデバッグもままなりません。いろいろ調べた結果、動くようになったので書き留めておきます。ま、ちゃんと調べずにとりあえず使ってみて、問題起きたらようやく調べるという、泥縄式がまずい、という自覚はあり、しかし、やめられまへん。 “トホホな疑問(6) なぜハング、cuda-gdb” の続きを読む
AIの片隅で(15) nvccとgprof, oprofile

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

前回、AI業界の “Hello World!” である MNISTをやってしまったので、遅ればせながらマイコン業界の “Hello World!”である Lチカを Jetson Nanoにもやっていただくことにいたしました。128個のCUDAコアをもつJetson Nanoには恐れ多い仕事ですが、エッジでAI狙いのJetsonですからIOくらい制御していただいても文句は言いますまい。 “AIの片隅で(13) Jetson NanoでLチカ” の続きを読む
AIの片隅で(12) Jetson NanoでChainer

前回は Jetson Nanoを立ち上げて CUDA が使えることを確認いたしました。今日は、CUDAにそれらしいことをやらせたい。やっぱりAIネタですね。それであれば、既にOSイメージに含まれている
NVIDIA JetPack SDK
というライブラリを使うことになります。JetPackには肝心のCUDAも含まれているので勿論使わせていただくのですが、こちらはこちらで、以前 Raspberry Pi にChainerをインストールし、人工知能業界のHello World! である MNIST を動かして、モデル間の速度を比べてみたりしております。そこで、 Chainer+MNISTの組み合わせで Raspberry Piと速度を比べてみました。 “AIの片隅で(12) Jetson NanoでChainer” の続きを読む