naoya_t@hatenablog

いわゆるチラシノウラであります

Coursera: Introduction to FPGA Design for Embedded Systems

コロラド大学ボルダー校のTimothy Scherr先生による組み込みシステム向けFPGA設計入門の4週間コースをCourseraで受講しました。
f:id:n4_t:20180108232341p:plain

そもそもFPGAに関しては全くの初心者(電子回路とか論理回路については素人とまでは言わないけれど)で、中級者向けのこのコースについていけるのかは未知数でしたが、論理回路に関するなけなしの知識を総動員して最終週までたどり着けました。

(1/22更新:Week 4終了、peer assessment採点待ち)

受講の動機

去年の秋からCourseraの専門講義 deeplearning.ai を受講していて、第5講の開講が延期になって1ヶ月空いたので何か受けようかなと思ったのと、とある社内プロジェクトFPGAをいじることになったのとで受講を決めました。

概要

実際に手を動かしながら、FPGA開発の基礎を四週間で習得します。
プログラマブル・ロジック・デバイスの歴史
FPGAの選び方(各社のFPGAの特長やFPGAアーキテクチャの違い)
・開発環境の使い方(インストールから回路設計まで)
・回路設計ハンズオン(加算器からNios II*1を使った組み込みシステムまで)

生徒同士で採点し合うpeer assessmentの仕組みを採用しているコースなので、自動採点のみのコースと違って締め切りが重要になります。(システム的には課題の提出は可能ですが、採点してくれる生徒がいなくなってしまう為)

講義は全て英語で、とてもアメリカっぽい*2英語です。
英語字幕とトランスクリプションはありますが、日本語字幕は(現在のところ)用意されていません。

イントロダクションがスパイ・エージェント養成コースみたいな演出になっています*3が、ビデオを見ながらFPGA開発環境(IntelのQuartus Prime)をインストールして実際に使いながら進めていくハンズオン形式のチュートリアルといった感じでした。ビデオを適宜止めながら画面を操作するので、ビデオの長さ以上の時間がどうしてもかかります。

推奨環境

Quartus Primeの動作環境がWindowsLinuxRedHatもしくはCentOS)のみで、Macエミュレータを動かすのは非推奨、と明言されていましたが、残念ながら手元にはMacBookiPad Proしかないので、仮想化技術で行けるところまで行って、駄目なら駄目でその時考えることにしよう、と思って始めました。

Macでもなんとか最後まで受講できましたが、この講義に関してはWindowsマシンがあるならWindowsでの受講をお薦めします。

メモリは(WindowsにせよLinuxにせよ)8GB以上推奨、とのことです*4

Linux絡みの注意点

・講義でも使われている設計検証ツールModelSimの無料版は32bit版で、これを64bit環境で動かすのにあれこれ(デフォルトでは入っていないi686なものを)追加インストールする必要がありました。
・IP CatalogのライブラリからIP部品(乗算器、SQRTなど)を調達する時に出てくるMegaWizardが、先に進むごとに重くなって三ページ目ぐらいでフリーズします。これはCentOSのデスクトップ効果(ビジュアルエフェクト)を標準からCompizにするとなぜか直ります。(普通逆かなと思うんだけど)
・回路図でユーザ定義シンボルの右上に余計なテーブルみたいなのが表示されて、小さくはできるけど消し方が分かりませんでした。

macOS上で頑張りたい人のためのメモ

・最初Docker for Macで行けないか試しました。CentOSを入れて、画面はXQuartzに出してインストーラを走らせて、インストール自体は完了しますが起動しようとすると謎ダンプを表示して落ちます。(CentOSのバージョンを色々試したり、Xの画面が出なくて右往左往したりで半日ぐらい格闘してたと思います)。
・その後(Dockerは諦めて)VirtualBoxCentOS(6.9。依存ライブラリの都合上6.x系推奨)を入れた上で無事動きました。Dockerではハードウェア的な何かをチェックされて落ちたのでしょうか。
・メモリは8GB以上推奨とのことでしたが、3GB強程度の割当てで最後まで行けました。

以下受講記録

*1:IntelのソフトコアCPUで、XilinxでいうところのMicroBlazeに相当。RISCアーキテクチャCPUのFPGA実装。

*2:コロラドっぽいかはわかりません。

*3:Week 4でシステム設計ツールQsysを使って組み込みシステムを作る話のところで"By the time you are done, people may mistake you for Q!"って言ってるけどQって何?誰?と思った人。ジェームズ・ボンドのコードネームです。

*4:多分4GBなくても行けますが。

続きを読む

SRM727

久しぶりに参戦。1完。

o-- +0/-0 119.36pt 72nd 1438 -> 1478(+40)

問題を1つでも開いた参加者の数はDiv Iで190人。順位2桁でもratingは大して上がらない。

続きを読む

deeplearning.ai受講メモ (1/8更新)

f:id:n4_t:20170926194609p:plain
https://www.deeplearning.ai/

Andrew Ng先生のディープラーニング専門講座 deeplearning.ai を受講したメモ。久々のCoursera!

現在のところ、全5講座

  1. Neural Networks and Deep Learning
  2. Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
  3. Structuring Machine Learning Projects
  4. Convolutional Neural Networks
  5. Sequence Models

のうち3つ目の Structuring Machine Learning Projects まで開講されている。

【追記】11月に4つ目のConvolutional Neural Networksが開講された。5つ目のSequence Modelsは12/19開講予定1月下旬開講予定。

Courseraの中でもこの講義は Specialization という枠組みで、基本有料(月$49.00;講義ビデオを視聴するだけで課題なしCertificateなしで良ければ無料)のコース。最初の1週間は無料*1

講義はすべて英語*2
1つ目のやつは日本語や中国語の字幕が用意されていたけど、後の方は英語字幕だけだった。

*1:無料になるのは講座単位ではなく Specialization の枠組み単位らしい

*2:Andrewの英語を聞くのって前に受けたMachine Learningコースぶりか?いやそんなこともないか

続きを読む

AtCoder Beginner Contest 085

読みたい本(消化したい積読)が沢山あって最近ちょっと競プロから離れていますが

スタバで読書してからの帰宅後ABC参戦。
始まって30分ぐらい経ってたけど、参加登録なしで途中からでも参戦できるのがABCのいいところ。
(ARCでもAGCでも出来ると思うけどレーティングが動くから気が引ける)

2018年は全完スタートで幸先が良い。

続きを読む

AtCoder Beginner Contest 080

https://beta.atcoder.jp/contests/abc080

週末のABC。寝ようかと思ってたんだけど出たやつ。

続きを読む

Codeforces Round #448 (Div. 2)

http://codeforces.com/contest/895
agwたんお薦め問題を解きに来た
C→A→B

続きを読む

AtCoder Beginner Contest 079

出る予定はなかったのだけれど… 18分26秒で終了。4完(レート変動なし)

続きを読む