Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

Google Edge TPU のデバイスドライバを見つけました

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

このツイートで、Google Edge TPU DevBoardのデバイスドライバと Pixel 4に入っているASICのデバイスドライバがあるのを知りました。

 まずは、DevBoardのデバイスドライバ。。。

実は、M.2 or Mini PCIe の Get stated のログとして、出てきているんですよ。

coral.withgoogle.com

この部分、引用しますね。

sudo sh -c "echo 'SUBSYSTEM==\"apex\", MODE=\"0660\", GROUP=\"apex\"' >> /etc/udev/rules.d/65-apex.rules"
sudo groupadd apex
sudo adduser $USER apex

 デバイスドライバの名前は、apex です。

早速、Linux 内のデバイスドライバを見てみましょう。

だいたい良くわからないものは、misc に居るんですが、apex は、staging/gasket にあります。

このディレクトリ内の、apex.hapex_driver.c が apex のデバイスドライバですね。

apex_driver.c の中に、VendorIDとDeviceIDが次のように定義されています。

#define APEX_PCI_VENDOR_ID 0x1ac1
#define APEX_PCI_DEVICE_ID 0x089a

これ、M.2 or PCIe Mini の解説のログの値と一致しますね。

03:00.0 System peripheral: Device 1ac1:089a

ということで、これが Google Edge TPU のデバイスドライバ、確定です。

コードを追って分かったこと。

  1. BAR2を使っていて、1MBメモリ空間(他のBARは使っていない)
  2. BAR2を3つの空間(0x40000、0x44000、0x48000)に分けて使用
  3. 各領域は、4KB(0x1000)
  4. 14種類の割り込みが来る
  5. ioctlは、1種類(APEX_IOCTL_GATE_CLOCK)
  6. sysfsがある
  7. デバイスドライバは、module

その他の処理は、gasket_core.{h,c} の中で色々やっています。

https://github.com/torvalds/linux/blob/master/drivers/staging/gasket/gasket_core.c

 この gasket の中でも、ioctl と sysfs があります。

 結構、いろいろなことをやっていますね。ソースコード解析職人の出番ですかね。

明日は、Pixel 4のASICのデバイスドライバを見ていきます。

お楽しみに。

 

Antmicro's open hardware baseboard for the Google Coral i.MX8 + Edge TPU SoM

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

antmicro.com

TwitterのTLに流れてきたのがこれ。「SystemVerilog Test Suite」というもの。

最近、RISC-Vのおかげで、HDL(SystemVerilog)を書く人が増えたのだろうか?

SystemVerilog:IEEE 1800-2012には無償で規格書公開していましたが、今ではそれも無くなって、新しい IEEE 1800-2017 が公開されています。

standards.ieee.org

 

Antmicro という会社の github を見てみたら、いろいろありますね。

github.com

多くは、Forkみたいだけどね。

その中で、何故か?こんなのありました。

Antmicro's open hardware baseboard for the Google Coral i.MX8 + Edge TPU SoM

  • TPU SoM
  • mini HDMI
  • USB-C (host)
  • SD card
  • GbE RJ45 
  • USB OTG
  • M.2 connector
  • camera FFC (MIPI CSI-2, 50 pin)
  • debug USB
  • DC power (6-36VDC)

SoMを使っているので、メモリは1GBですが。。。

github.com

回路図もありますね。現在は、Rev 1.3 のようです。

github.com

HDLをリファクタリング

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

ちょっと気になったので、いつものように、Twitterにて、

「HDLでリファクタリングしたことあるか?」を聞いてみました。

結果は、以下のとおり。45票入って、あるが44%、ないが47%、しらないが9%。

 ソフトウェアと違って、まだまだリファクタリング、していないのですかね。

HDLの場合は、検証(テスト)環境がきちんとしていればリファクタリングしてもいいと思うのですが、動いているものをあえて変えた時のリスクを考えると、

「触らぬ神に祟りなし」

って感じなんでしょうかね。。。

とはいえ、大昔、とんでのないHDLを何度も見てきたことがあるので、そういうコードはリファクタリングではなく、無かったことにして、新規に調達した方がいいのかな?と思います。

 

あ、それから、Verilog HDLのコードも SystemVerilog で書き直すといろいろと便利で特にコード量は少なくなりますね。ポート宣言周り何かね。。。

 

おっと、2009年に自分でも書いていましたよ。HDLのリファクタリングについて。

vengineer.hatenablog.com

Deep Learningを学ぶための教材?

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

先週は、3つのDeep Learningを学ぶための教材を知りました。

1つ目は、@_tkato_ さんのこのツイートで知った「Dive into Deep Learning Compiler」

 HTML版だけじゃなくて、PDF版もあって800頁超え。。。

 

二つ目は、PyTorchを学ぶための本「Deep Learning with PyTorch」

こちらはメールアドレスの登録でPDF版をゲットできます。

 

3つは、「ゼロから作るDeep Learning」の第三弾である「ゼロから作るDeep Learningフレームワーク編」こちらは、Deep Learningフレームワーク「DeZero」を作るというもの

note.mu

 

どれを読めばいいのかは人それぞれですが、本当にいろいろあって困っちゃうね。

 

11月の映画鑑賞

映画好きの戯言

17本、[ 220本:劇場:1本、DVD:53本、GYAO!:164本、その他: 2本 ]

 

X-MEN:ダーク・フェニックス (2019) / DARK PHOENIX (DVD)

あれ、ジェーンって、他の作品でも爆発していたけど。

X-MEN:ファイナル ディシジョン (2006)だったような気がする。

 

ラ・ヨローナ ~泣く女~ (2019) / THE CURSE OF LA LLORONA (DVD)

死霊館」シリーズのジェームズ・ワン製作で贈るホラー・サスペンス。ということで観たが、古典的なホラー映画としては、いいかも。何しろ、時代設定が1973年だから。

 

ある女流作家の罪と罰 (2018) / CAN YOU EVER FORGIVE ME? (DVD)

これ実話っぽい。 主演の メリッサ・マッカーシー新しいゴーストバスターズの太っている人だって、全然、気が付かなかった。 

 

シャザム! (2019) / SHAZAM! (DVD)

 SFっぽいコメディ。。。おもろかったよ。
 

柴公園 (2019) (DVD)

 


エージェント・ウルトラ (2015) / AMERICAN ULTRA (GYAO!)

ジェシー・アイゼンバーグ | クリステン・スチュワートカップルが出ていて、おもろかった。

 

少女椿 (2016) (GYAO!)

みどりちゃん役の中村理沙、この時27歳じゃん。

演技力が無かったのか、その後、映画には出演していない。

 

パラノーマル・アクティビティ 第2章/TOKYO NIGHT (2010) (GYAO!)

結構怖かった。姉ちゃん、どこに行った?

 

続・深夜食堂 (2016) (GYAO!)

GEOでDVDを借りて観たので、2回目ですね。

 

テイク・シェルター (2011) / TAKE SHELTER (GYAO!)

地味な映画。

 

大脱出 (2013) / ESCAPE PLAN (GYAO!)

スタローン(当時68歳)&シュワちゃん(当時67歳)、おじいちゃんになっても頑張っている

 

深呼吸の必要 (2004) (GYAO!)

香里奈成宮寛貴は、芸能界から離脱。
谷原章介長澤まさみ大森南朋は主役級に

 

あなたになら言える秘密のこと (2005) /LA VIDA SECRETA DE LAS PALABRAS
THE SECRET LIFE OF WORDS (GYAO!)

観たことあるなと思いながら、最後まで観た。

 

シアター・ナイトメア (2014) / THE LAST SHOWING (GYAO!)

全然期待していなかったが、なかなか面白かった。制作費用もかけないでここまで作れるのはストーリーがいいからなのかな。


ザ・ウォーカー (2010) / THE BOOK OF ELI (GYAO!)

2011年の2月にDVDで観ているので何となく憶えていたのですが、ラストは全く覚えていなかった。。。邦題は、ザ・ウォーカーですが、原題は「THE BOOK OF EL」こっちの方が内容的になっています。といっても、これじゃ、何のことやらッて感じですが。

 

ランナウェイズ (2010) / THE RUNAWAYS (GYAO!)

こちらは、2012年6月にDVDで観ています。

ボーカルのシェリー・カーリー役は、ダコタ・ファニングだったのね。この時16歳だから、シェリーの15歳とほとんど変わらないね。

そうそう、ジョーン・ジェット役の クリステン・スチュワートがどこかのバンドのギターに放尿するシーンがあったのを忘れていました。

 

パーフェクト・センス (2011) / PERFECT SENSE (GYAO!)

何かの感染症で、人類が臭覚、味覚、聴覚、そして、最後に視覚を失うというSF。

最後は、視覚を失うというところで終わっちゃうけど。。。ね。

NUVIAとは?

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

SC19ではなくそのちょっと前の発表

techcrunch.com

日本語版は、こちら。

jp.techcrunch.com

この記事によると、

  • Graphcore:シリーズD投資のおよそ2億ドル(約220億円
  • Groq:5200万ドル(約57億円)
  • Cerebras(セレブラス)1億1200万ドル(約122億円)

を調達(3社ともチップとボードを公開済み)。この記事にある

  • NUVIAは、シリーズAで 5300万ドル(約58億円)

で、NUVIAとは?

www.reuters.com

サイトは、こちら。

nuviainc.com

Arm系のCPUコアに強い人たちが集まっている模様。

職もいっぱいあって、中を見たら、Arm SoC + PCIe + DRAM (DDR4~)っぽい。

これで、サイトにもある

Silicon Design Reimagined

をどうやって実現するのだろうか?

Google Edge TPU : coral.ai になったのと、November 2019 Update

@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそすべては、SystemC v0.9公開から始まった

Google Edge TPUを扱っている Coral のサイトが新しくなった。

サイトのドメイン名も、coral.ai に。

coral.ai

あれ、こっちは? https://coral.withgoogle.com/ 同じですね。

coral.withgoogle.com

上の方の「Products」を見てみたら、こんな感じになっていた。

 Dev Board と USB Accelerator はあくまでもプロトタイプ用で製品にするときは、Mini PCIe Accelerator、M.2 Accelerator、SoMを使うんだって。

USB Acceleratorに比べて、Mini PCIeやM.2は半額だしね。SoMはそれほど変わらないけど、各製品によって必要なI/Oが違うし、形状も変わるからね。

 

それから、November 2019 Updateでは、Mendel 4.0 upgrade based on Debian 10 になり、以下のようなサポートも追加。OpenCVOpenCLが公式にサポート

  • Support for Python 3.7
  • Support for OpenCV and OpenCL
  • Support for device tree overlays
  • Upgraded GStreamer pipelines
  • Upgraded Linux Kernel (4.14)
  • Upgraded U-Boot bootloader (2017.03.3)

これで、メモリが1GBじゃなくて、4GBなら、いいんだけどね。

OpenCVOpenCLをやると、1GBじゃ、足りなくなるんだよね、きっと。

ちなみに、OpenCLに関しては、既にQiitaに記事があがっていますね。

i.MX8M には、OpenCLサポートをVivante GPU (GC7000Lite) が載っているので

qiita.com