ぐだぐだ低レベルプログラミング(10) アセンブラ・リスティング

前回に引き続き、gasを用いてArmのアセンブラやっていこうと思ったのです。個別の命令をいくつか見てきたので、今回は、メモリアクセスに進もうかと。そこでちょっと魔が差しました。最初からアセンブラでサンプルを書くのではなく、gccがどんなコードを吐いているのか「参考」にさせてもらうのはいかがかと。Cであれば、大域変数、ローカル変数、単純変数、配列、構造体、いろいろあります。そういうモノどもをコンパイラはどんなコードで扱っているのか調べておこうと。でもね、その前に、大体逆アセンブルとか、メモリとか、セクションとかの調べ方押さえておかないと意味わかんなくない、ということに思い至りました。 “ぐだぐだ低レベルプログラミング(10) アセンブラ・リスティング” の続きを読む

土木でエレキ(20) 台湾橋梁崩落

昨日10月1日の台湾の橋梁の崩落事故、衝撃でした。かなりな数の方が亡くなる大事故となってしまったので日本のニュース番組でもあちこちで取り上げられていました。御覧になった方も多いのではないかと思います。なんと言っても、見通しの良い昼間、複数台のカメラが監視している目の前で崩落が起きました。実映像のインパクトは半端ないです。 “土木でエレキ(20) 台湾橋梁崩落” の続きを読む

ぐだぐだ低レベルプログラミング(9) Armらしい命令その2

前回は、Armらしい命令ということで、オペランドの取り扱いで特徴でてるじゃないかと思われるところ数点を取り上げさせていただきました。今回は、フラグですね。如何にもArmっぽいフラグの取り扱いをする命令です。 “ぐだぐだ低レベルプログラミング(9) Armらしい命令その2” の続きを読む

ぐだぐだ低レベルプログラミング(8) Armらしい命令?

前回は、.syntaxとかコメントとか、Armのアセンブリ言語をgasの上で書くときにちょっと「引っかかった」あれこれをいくつか投稿いたしました。今回は、Armのアセンブリ言語命令そのもので、ちょっと独特だな~と思った部分をメモっておきたいと思います。 “ぐだぐだ低レベルプログラミング(8) Armらしい命令?” の続きを読む

ぐだぐだ低レベルプログラミング(7) .syntax, コメント、ローカルラベル

一歩引いて眺めたら、アセンブラなんて、どのCPUでも同じようなもんだ、と思います。最初に何か一つのCPUでアセンブリ言語を覚えたら、後は以下同文的に、いろいろなCPUで書けるんじゃないでしょうか(個人の感想です)。ただ、実際にコードを書く段になると、CPU毎の違い、アセンブラ処理系のクセなど「細かい」ところが気になります。また、そこを理解しないと、やりたいことは分かっていても、実際には「どう書いたら良いかね」と手が止まってしまうもの。このところ、不慣れなArmのアセンブラに取り組んでいるので、他のCPUなどから移ってきたときにちょっと戸惑うポイントをメモって行きたいと思います。使用するアセンブラは今回は gas (コマンド名的には as )です。 “ぐだぐだ低レベルプログラミング(7) .syntax, コメント、ローカルラベル” の続きを読む

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, サンプル動かないのもある” の続きを読む

介護の隙間から(42) 杖にみる心持ちのすれ違い

3つ前、第39回で「歩行を助けるデバイス」という投稿を書いたときに、その最初の項目として杖を上げさせてもらいました。もっともプリミティブ、あるいはファースト・チョイスということで、3点ほど「選択のポイント」を列挙しました。が、しかし、このほど、その選択のポイントなど、所詮、杖を必要としないものの勝手な意見だということがあからさまになってしまいました。その「最重要な」選択のポイント、デバイス屋にはまったく想像もつかない部分にありました。 “介護の隙間から(42) 杖にみる心持ちのすれ違い” の続きを読む

トホホな疑問(9) ラズパイのBogoMipsのなぜ?

以前から気になっていたのです。ラズパイのBogoMips。model 1 B+は、

697.95

などという値を報告してくるのに、model 3 B+ は、

38.40

などという値です。実際に同じソフトウエアを走らせたら model 3 B+の方が、ずっと早いのに(ま、Pi 3 B+は4コアですがね)。クロックアップとかそんな問題以前の圧倒的な差、なぜでしょう。まあ、BogoMipsなどは「非科学的な値」だから信用するな、と言われても、この結果、何か理由がある筈。気になって夜も眠れない。。。 “トホホな疑問(9) ラズパイのBogoMipsのなぜ?” の続きを読む

ぐだぐだ低レベルプログラミング(6) インラインアセンブラ、gccで書き換えてみれば

前回は、MbedのWeb開発環境を使ってでしたが、Arm純正のツールチェーンで、「極小」のアセンブラ記述を行ってみました。そのとき、gccのインラインアセンブラで書くならばチト面倒いかもみたいなことを書いてしまいました。そのままというのも気持ちが悪いので、今回は実際に対応するコードをRaspberry Pi 3上のgcc用に書いてコンパイルしてGo。 “ぐだぐだ低レベルプログラミング(6) インラインアセンブラ、gccで書き換えてみれば” の続きを読む

介護の隙間から(41) 郵便局の見守りサービス、自爆

いえね、今日は敢えて「がっかりだ」と言わせてもらいます。大分前になるのですが「介護の隙間から(23)」で見守りサービスを調べさせていただいたときに、真っ先に上げさせていただいた

郵便局のみまもりサービス

自爆営業横行とのニュースであります。まあ、当方「デバイス」を標榜しておりますんで、どちらかと言えばハード、ソフトの装置で見守りをアシストするような方法に軸足を置いておるのでございますが、

人手によるサービス

嫌いじゃありませんよ。むしろ、心が通う、気持ちが籠るのであれば。それが自爆ではね。。。 “介護の隙間から(41) 郵便局の見守りサービス、自爆” の続きを読む

ぐだぐだ低レベルプログラミング(5)Arm組み込みアセンブラとインラインアセンブラ

前回までは、Armコアとは言え、Linuxが立派に走るCortex-A系のプロセッサ上で、GNUのツールチェーンを使い、「わずかに」アセンブラ世界の入口に到達しました。しかし、目の前に置いてある Arm Cortex-M系のプロセッサを搭載したマイコンボード共が、最近使ってないやんけ!とお怒りな気がします。今回は、ArmのWeb開発環境、Mbed Compiler を使ってマイコン上でアセンブラ書くための第1歩を踏み出してみます。ツールチェーンもArm純正、GCCとは一味違います。 “ぐだぐだ低レベルプログラミング(5)Arm組み込みアセンブラとインラインアセンブラ” の続きを読む

土木でエレキ(19) 停電復旧を邪魔した雷の記録

10日火曜日の午後だったですが、普段この辺では目にすることの無い車が走ってました。北陸電力の高所作業車です。素人目には、フル装備でやる気満々に見えました。交差点を千葉方向へ曲がっていったので、多分、復旧の応援のためはるばる関東に出張ってきているものと見ました。しかし、10日の晩、そして11日水曜日の晩と雷雨襲来。雷雲下では電線の高所作業などできないので、じりじり待つことになったんじゃないかと想像します。その陰でこちらのフランクリン・ライトニング・センサ、雷襲来の様子を捉えていました。 “土木でエレキ(19) 停電復旧を邪魔した雷の記録” の続きを読む

トホホな疑問(8) Raspbianで ltrace 動きませぬ

しばらく前にRaspbian上でAudioインタフェース用のコマンド群がトラブったときに活躍したのが、システムコールをトレースしてくれる

strace

コマンドでした。お陰で何故止まってしまったように見えるのか理由が分かり、解決につながりました。ありがたい限り。この strace に似たコマンドで、ライブラリ呼び出しをトレースしてくれる

ltrace

というコマンドもあります。これをRaspbianの上で不用意にインストールして動かそうとしたところ、ハングしました。なぜ? “トホホな疑問(8) Raspbianで ltrace 動きませぬ” の続きを読む