SANMAN

思いつきの考えを垂れ流すブログ

大学は無意味ではないが高卒就職した方がいいと思うの

読んだ。教育の限界を感じた。

言いたいこと

Fランクだったが大学に行って良かったので価値はある。だが、高卒就職してから大学等への進学をする方が目的意識の面等からして、もっと良いのでは。スタバみたいに企業が学費負担したりするのが活発化して奨学金な問題もいくらか良くなる感じもする。必要に応じて休職や退職、または業務命令でいつでも大学や専門に行くのが普通な社会になって欲しい。無駄に入学する事も減っていきそうだし、それに合わせて無駄に多いと言われている大学の数も適正な数に落ち着くのでは。やる気の無い学生も減り、教員の悩みも減ってくれそうだ。 デメリットが無いわけでは無いが。

Fラン大に意味はあるか

自分次第。高度な専門性となると教員の質に差があるかもしれないが、学士レベルだと無いと思う。 当時、興味のある分野を扱っているとされる大学があまりなかったのと、「偏差値による大学のランクづけなど無意味である」という考えを持っていたので、教員の研究内容、出版物等含めた成果を出来る限り調べて決めた。話をよく聞いてみたいと思える人が何人か見つかり、あとは研究設備とか、その時の学力的に余裕なのか or 頑張れば入れそうなのかとかを確認。候補にはUCLAとかあったが、来世に期待レベルの無理さなので、そうしてFラン大の新設学部の第1期生となった。

志望校について報告するために進路指導室行った時、貼ってある偏差値ランキング見たら35とかで、入試面での不安が完全に無くなると同時に躊躇した思い出がよみがえる。 風の噂で学生の面倒がみきれなくなってきたので偏差値上げたとか聞いたが、まあ国内の大学ランキングの世界においては偏差値60以下は存在価値は無いかと思う。

コネだったり箔付け的な意味で大学ランキングは有効なので、国内ならできるかぎり高偏差値大学にチャレンジした方が良いとは思う。歴史の長い分野なら特に。

名前を書けば受かるとかいうボーダーフリー校ではないからか、九九ができないとか授業中にカップ麺食ってるとかいうヤバイやつは見当たらなかったが、ネットで見つかる高偏差値大学の内容と比べると当然低め。(低めというか進度がゆっくりな感じ)

とは言え所詮は学部生レベル。講義はちゃんとした教科書が沢山ある基礎的な内容なので、興味があるなら勝手に勉強して、オフィスアワー、メール等を使えばよい。代返、中抜け可能な講義であれば、時間の融通もきくのも良い。 高偏差値大学だと教員の奪い合いになってるだろうけど、Fランだからか空いてるし、他の教科書とか参考文献を長期で貸してくれたりする。

共同研究しなきゃいけないわけでもないから周りの学生の学力が低いとか、同期が留年しようがさして問題にはならない。

高卒就職することについて

普通自動車免許みたいなノリで学士以上であることを求められるのはわりとつらいが、未成年だとハロワが非常に面倒であるという企業として仕方ない面がある。高卒で就職を検討した人は知っていると思うが、高卒採用は面倒くさいうえにミスマッチ率高めるためとしか思えない各種制約により早期離職が多い。高卒側からしても大卒みたいに複数社かけもちで選考進められず、一社入魂スタイルを強要されるとか。両者にとって国が邪魔をしているとしか言えない状況。 なので高卒で就職しやすいようにしてやればいい。 医療など、働く為に必要な資格を取るために学校へ行く必要がある職種でないかぎりだが。

社会人になってから「もっとちゃんと勉強しておけば良かった」と思う人や、「大学行く意味なかったな」と思う人がいるので、今の新卒採用をとりあえず高卒からにしてしまえばどちらも幸せになれるのでは。

企業は既にやっているように入社した社員のうち有望な社員に対して学費をいくらか負担してあげたりすればいい。力をつけて戻ってきたり、そいつが優秀な研究者になればそことのコネができたりする。業務経験者となら産学連携も少しはマシになるかもしれん。業務性がある以上、卒業とともに転職されてリターンゼロになるリスクはつきまとうが。あとは多様性の確保や福利厚生的な感じで業務性のない分野でも負担してやるとか。こっちは揉めないように返還義務免除の要件を説明する必要があるけど。

技能メインで高度な専門知識は要求されないとか、自分で学べるとか職場で学べるとかでわざわざ勉強しに行く必要ないとかならそのまま働けばいい。

実現するには今ある高卒採用における規制を無くすとか、かなり緩めてやる必要がある。高卒未成年問題は成人年齢の18歳への引き下げの流れで解決してくれそうな雰囲気だがはたして?

イエッティなどの不動産ネットサービスを使ってみた感想

都心近くでとりあえず暮らせる部屋を探していた。

そんなわけで、今回は新しめのネットサービスを利用してみた。結論から言うとワンルーム探すならウチコミ!とイエッティは良い感じである。ファミリー向けは不得意だが。セカンドハウスとか独り暮らしには使えそうな感じだ。

探している物件条件

最低条件は優先順に

  1. 東京駅から近い
  2. 月額7万弱以下(共益費等込み)
  3. 12平米以上の居住スペース
  4. ガスは都市ガス(家賃等が低ければプロパンでも良い)
  5. ミニキッチンがあること
  6. 初期費用が安いこと、特に礼金とか
  7. RC構造

妥協点の優先度は欲しい設備順に

  1. 専用シャワーは欲しい
  2. 専用トイレは欲しい
  3. 洗濯機置き場は欲しい

という感じ。 地域が最優先で、安いワンルーム
引っ越したい場所が場所なだけに、7万以下に抑えようとすると、難がある物件が多い。 あたりまえの設備の洗濯機置き場が消えることがしばしば。ベランダはあっても、排水溝がNG。

高温多湿な日本では専用シャワーは欲しいところ。 勤務時間の自由がきくとはいえ、外出して銭湯とかはちょっときつい。 トイレは共同でもいいし最悪の場合外出する。 洗濯機については付近にコインランドリーがあれば良いし、

CBジャパン 2槽式小型洗濯機 【マイセカンドランドリー】 TOM-05

CBジャパン 2槽式小型洗濯機 【マイセカンドランドリー】 TOM-05

みたいなものがあれば、下着類とか溜め込みたくない衣類を洗濯できるのでコインランドリー代も抑えられる。ヨドバシでこれの実機を触ったが、オフィスチェアぐらいの大きさと体感の重さだった。介護であったり部活動や作業員など、別洗いしたい時とかにも使われてるらしい。 部屋の間取りや広さ次第では

を使うことも可能。 洗濯の排水は生活排水なので、風呂場かキッチンに流す必要があるため、その辺りの空間的余裕を見ておく必要がある。

条件を微妙に満たしてない物件も見たりしたが、風呂なし物件にしたほうがいいくらいの厳しさだった。 風呂、トイレ、キッチン、洗濯機が共用の4年間寮に住んでいたことがあるが、あれは入居者の年代が近い人が集まるのと、管理人のアクティビティ次第で暮らせるか決まるから、東京ではなかなか難しい。

使ったサービス

イエッティを除き、最近はやりの仲介手数料が0円であるなどの点をアピールの一つにしているサービス。 0になるからくりとしては、借主側が負担させられていた基本的には貸主側に仲介手数料を負担させていくというもの。 そんなわけで、「金払うから誰か住んでくれ!」ってかんじな程度の物件が多いが、不動産購入とかではなく、安く寝床が欲しいのであれば良いのではないかと。 あと、Facebookと連携!とかあるけどアカウント登録が楽なだけで全然連携してないので、新規にアカウント作ったほうがいい。

基本的にはこれらのサービスで見つけた物件の詳しい情報は検索により得た。 スーモとかのサイトは物件情報眺めるのには良いが、今回の物件条件のような場合、結局行き先の不動産会社がクソなことが多いので情報比較にしか使わなかった。その面ではホームズがよかったかな。

ヘヤジンプライム

上級者向け。 個人的にはナシだと思った。 印象としては

  • 扱っている物件は多め
  • 掲載情報の不足や、食い違いが多い
  • 対応は機械的
  • 他サイト掲載の物件を持ち込める(URL提示)の便利
  • 物件のレコメンド機能はわりと優秀

という感じ。 仲介手数料が最大3万というのもポイントでもある。

物件は自分で探していくのが主流で、気になる物件を集めていくと、レコメンド機能により良い感じの物件が出てくる。 気になる物件の、問い合わせボタンを押すとその物件が実際に扱えるか初めて判明する。なお、この問い合わせ機能は1日5件までに制限されている。 最初は自動応答のようなものからチャットが来て、追ってオペレーターから内見可能であるとか仲介手数料の有無についての回答が来る。 物件の内見は、内見リストに3つ以上ぶち込むだけで良い。3つ以上入れるのは内見予定日までの間に内見リスト中の物件が取られた時の保険。内見は現地集合で、徒歩・電車移動。内見時の質問事項はその場ではなく、持ち帰り後のチャットでの回答だった。

ナシだなと思ったのは、提供される情報について問題があるため。この物件は仲介手数料は0円、と表記しておきながら、問い合わせ後のオペレーターからは3万円と言われたり、掲載情報は他サイトに比べて欠落しているものが多いなど。内見時の質問事項の回答がその場でないのもナシだ。たいてい内見時などには出してもらえる初期費用の見積もり(概算)がなかったのナシだと思ったポイント。かかる費用がちゃんと記載されていれば足し算するだけだが、記載されていないのでかなりアバウトになる。

はまれば、さっくりと決められるシステムになっているけど、はまらないと逆に時間や手間がかかるという感じだった。

イエッティ

わりと良い。 イエッティ直属の不動産会社があり、そこは普通にまともな不動産会社という感じ。 印象としては

  • 外部営業マンのアクティビティは低い
  • 物件情報の更新はしていない?
  • 物件はすくなめ?
  • 人力レコメンド機能なので、融通がきく
  • 対応はちゃんとしている
  • Web上での書類のやりとりが可能

仲介手数料は基本的に取る方針なので、手数料無料系よりマシな物件が多い雰囲気だった。既に募集終了している物件を紹介してくるなど、情報更新はおそい雰囲気。紹介される物件は人力レコメンドゆえか、ネットサービスとしては少なめ。対面の不動産に近い。本来なら、外部営業マンからも紹介が来ていい感じの物件数になるのかもしれないが、外部営業マンはいないと思ったほうがいい。実際いないかも。ヘヤジンみたいに複数を一気に内見という感じじゃないのか、内見したい物件を選ぶと即、内見フェーズに移行する感じだった。1件しか内見していないので実際はわからないけど、内見時の営業マンが電車で来てたのでたぶん徒歩・電車でまわるスタイル。 内見等も含め営業マンの対応はちゃんとしており、質問事項等も基本的に即座に答えようとしてくれる。初期費用を抑える相談等にも対応してくれるなども。あと、見積もりなどの書類等をネット上でやりとりしてくる。ネット対応した普通の不動産会社という感じなので、とりあえずオススメはできる。

直談.com

大家と直でメールや電話をするスタイル。 管理会社とかに頼んでない物件が多い。 印象としては

  • 物件はかなりすくない
  • 初期費用の概算がしやすい
  • 掲載情報の正確性に期待できる
  • 管理会社なし物件だと大家がやばい奴だったら揉めるかも
  • だいたいが仲介挟んでないので大家次第では内見日程の調整が面倒かも

掲載料を大家側から取るだけのサイト。(物件数が揃うまでは無料らしい) サイト側が双方のために何かしてくれたり、特別便利な機能はない。概算初期費用の記載欄があるためか、初期費用関連の項目はちゃんと明確に書かれている傾向があってとてもよい。(概算は間違ってたりするが) 仲介業者・管理会社がいないため、もしも大家がやばい奴だった時はどうしようかという感じ。大家次第ではトラブル時や退去時に揉めるかもしれない。

ウチコミ!

大家とサイト運営と一緒にグループチャットするスタイル。仲介手数料は全て0。イエッティと直談.comが混ざった感じ。 個人的にはねらいがいいと思う。 印象としては

  • 物件情報、PRは大家が作成しているため個性的
  • 内見や契約はサイト運営会社から派遣されるエージェントが担当できる
  • 集客のみで、管理会社は別に存在している客付け不動産
  • 客付け不動産のデメリットはいくらかのこる
  • 検索機能が弱い
  • 物件はすくない
  • 大家側からのオファーがくる
  • 掲載情報の正確性に期待できる

借主側が仲介手数料0をありがたがるのは、高すぎなのと初期費用がきついから。それをわかっているのか、物件情報に初期費用分割というタグみたいなのがある。初期費用をクレジット払いでというのはわりと見かけるが、物件情報に初期費用の項目を入れているのは、このへんわかってやっているのでは。大家側は、物件情報の掲載料などの広告費がなく、契約が成立した時に仲介手数料を100%支払うだけとなるというのも。 大家と完全直の場合に思い浮かぶ不安も、エージェントが間にかむことでいくらか和らぐ。 客付け不動産の営業マンなので、営業マン経由での家賃交渉などがやりにくい(遅い)というのがあるが、チャットは大家も基本的に見ているようなので、初期費用分割みたいな金関係の交渉はそこで提起すると良い感じ。

結果

ウチコミ!で決めた。フリーレントで翌々月家賃先払いなくなったので、初期費用はかなり下がった。 立地はかなり都心なので便利。神保町、秋葉原に徒歩圏。

Amazon AWSがFPGA対応してしまった

かなり長い

re:Invent 2016の発表はかなり衝撃的だった。 AmazonクラウドコンピューティングサービスであるAWSFPGAもつかえるようになってしまった。 MicrosofがAzureでサポートするのが先だと思っていたのでびっくり。

ということで、以下のページより最大構成のf1.16xlargeで今すぐサインアップしてみた。 aws.amazon.com

FPGA開発経験があったり、興味がある方は今すぐサインアップ」って書いてあったので。 なんか勤め先情報とか聞かれるも、XilinxなどHW系のアカウントはホビー用途で作る時も聞かれるので気にせず送信してしまったがまあ大丈夫だろう。 ゴリゴリ使うというよりか、どういう感じの環境かを詳しく知りたいだけなので。そもそもAmazonから使用許可が降りるかもわからん。 インスタンス起動できなくてよいからちゃんとしたデータシートやらを見たい。

いまのところF1インスタンスの起動はできないから、ネット上にある情報をいろいろ探ってみた結果を書く。

値段

リストにないので不明だが、GPUインスタンスよりか安いか同等くらいじゃないだろうか。時間当たり5ドルくらいか? というのも「FPGAGPUに比べて電力対性能が良いぞ」というFPGAベンダのアピールがあるからGPUインスタンスより安くないと困るはず・・・だがツール類も提供するとなると同等くらいになる可能性もある。

AWSがどの世代のGPU使ってるか知らんけど、今回採用する最新世代、同クラスのFPGAが同等のGPUインスタンスより高かったら基本的に話になりませんね。 そのときはGPGPUしよう。

性能的にGPUと拮抗するかやや低い性能だけど、長期間稼働のコストGPUより安いとかならとても良い。 個人的感覚ではGPUの1/2くらいのコストならFPGAの勝利な感じ。

AWSを使ってサービスを作ってる人にとってはどうか

設備投資なしでFPGAによるコンピューティングがお試しでできるようになってしまうのはでかい。特に大量のテキストや動画、静止画を扱う系はFPGAがマッチしやすいから、Facebookだのが取り組んできたわけだが、Facebook並みの体力がなくても試せるってのはさすがに。いろいろいじってみたけど、なんか自分たちにはマッチしないなーっておもったらAWSインスタンス破棄すりゃいいんでしょ。いいっすね。

とはいえ、経験ゼロからのRTLはもちろんC言語のようでC言語でないVivado HLSはたぶん厳しい。IPインテグレータは単純なものならいいけど、大規模だと結構厳しい。

というわけで、自分で作ってみたいならとりあえずOpenCL(SDAccel)がいいんじゃないかと思う。対応しているならSDSoCもありだ。 アクセラレーション ゾーンを見るとわかるがSDAccelならDeepLarningやFFMPEGSQLなんかのアクセラレーションのスタックがあるし。 無料なのかわからんけど。 あとは外注するとかかな。

ハードウェアエンジニアにとってどうか

FPGAを使ったコンピューティングがGPUインスタンスレベルに落ちれば、AWSを利用してサービスを作ってるその辺の企業で使われる可能性もなくはない。なので就職先の業界が増えるかも。 AWS Marketplaceを充実させる仕事や、受託とかもあるかも。単純にハードウェアエンジニアといってもFPGA、特にXilinxに強い必要があるけど。ASICと同じRTLが動作するとはいえ、FPGA特有のスキルや知識というのがあるから、ASIC系のひとはその辺を身に着ける必要はありそう。 とりあえず動くRTLならたぶんVivado HLSとFPGAの無駄遣いにより誰でも出来そうなので、そこからよりサイクル数が少なくとか規模を小さくして並列化とか、さらなる改善ができることが必須だろう。 オンプレミスでFPGAコンピューティングをしようとしている企業でも、オンプレの欠点をおぎなう形でAWSのようなクラウドコンピューティングサービスを使う可能性はあるので、勉強しておいたほうが良いと思った。

AlteraっていうかIntelはどうするのか

Xilinxの出すSDAccelってXeon+FPGAともろにぶつかる。アーキテクチャ的に差異があれどアプリケーション的にぶつかりすぎる。 FPGAチップが売れればよいビジネスだから、しれっとAWSに載る可能性もなくはないが、まずなさそう。 競合第二位かつAlteraと仲のよさそうなMicrosoftかなぁ。 やっぱりクラウドコンピューティングサービスってオンプレミス環境を構築する力がない大多数の企業に使ってもらえるかどうかみたいなもんだと思うから、どっかでXeon+FPGAをつかえるようにするんだろうな。 Xeon+FPGA自体、オンプレのデータセンタ作る企業かクラウドサービスのためのデータセンタ作る企業くらいしか売る先ないんだし。


以下技術系

ハードウェア構成

ホストとなるインスタンスのスペック。こいつだけで大体のことできる気がするんだが。

  • Intel Broadwell E5 2686 v4(ベース 2.3 GHz)
  • 最大976 GiBのDRAM
  • 最大4TBのNVMe SSD

FPGAは最大8個まで。実際1個か8個のどちらからしい。

  • CPUとはPCIe x16で接続され、Write/Readそれぞれ12Gbps、計24Gbpsの帯域を持つ → 8FPGAの場合もかわらないっぽい
  • FPGA間は約400Gbpsの帯域を持つ双方向通信可能なリング状のHSSI(High Speed Serial Interface)が構築可能(8FPGAの時。プロトコルは自作しろ系)
  • FPGAとメモリ空間は共有しているらしいが? → 場合によると思う。キャッシュコヒーレンシとかどうなん
  • サーバーインスタンスはどちらも1つに見える
  • FPGAのローカルメモリとしてECC付DDR4 16GiB x 4ch

Virtexは7までしか知らないけど、すさまじいな。

約33GbpsのGTYトランシーバが120個とか、1つのFPGAに4chの16GiB DDR4とかやりたい放題じゃないか。

片方向リングで実装するとしてこういう感じかな?想像以上に長大なパイプラインが構築できそう。 耐障害性を考えると逆方向リングも必要だろうけど。1リングあたり約200Gbpsって。

f:id:tkysktmt:20161203040157j:plain

開発環境

https://github.com/aws/aws-fpgaが404になってしまっているし、なかったことにされているので具体的にはよくわからないが、 各FPGA

  • PCIe(ホストCPUとのやり取り用)
  • GTX(FPGA間通信用トランシーバチャネル)
  • MIG(FPGAローカルのDRAMコントローラ)

といったF1インスタンスで必須なインターフェースがあらかじめ実装された設計データをベースに開発するようだ。

HDKによるデザインエントリに関連については、

  • FPGAのコンフィグ回数制限はないっぽい
  • ツール類は既存のVivado2016.3で、開発するインスタンスは無料
  • Vivadoが対応するRTL(SystemVerilog、 VerilogVHDL)で開発可能
  • Vivado HLS利用可能
  • OpenCL利用可能 → どうみてもSDAccelと思われる
  • Vivado Simulator以外のサードパーティーシミュレータも利用可能 → 利用リクエストをみるとCadence, Synopsys, Mentorあたりっぽい。高そう。
  • たぶんデバイスロックされたライセンス
  • JTAGがつながっていて、インスタンス上のVivadoからアクセス可能
  • サードパーティーの論理合成ツールは現状対応しないっぽい
  • 高級言語コンパイラが利用可能 → XSDKとかSDAccelで使うCとかのはなしかと
  • グラフィカルプログラミングツールでの開発が可能 → MatlabLabVIEWなどのモデルtoRTLのことかな? まさかIPインテグレータじゃないよな?
  • PCIeだけ常にアクティブで、残りのFPGAファブリックをパーシャルリコンフィギュレーションして使うっぽい?
  • AFIの売買可能 → bitファイルかSDSoCプラットフォームとして?形態がいまいちわからん
  • XilinxのIPライブラリは利用可能 → Xilinxのパートナーなどの有償IPはAWS Marketplaceで販売?
  • IPパッケージャでパッケージ化したIPを売りに出せるかは不明

という感じなようだ。無償でSDAccelが使えるのなら良いかも。

30回のコンフィグ制限とかいうのはなんかの間違いで、「CPU比較で30倍の性能改善」とかの聞き間違いかなと。どこにも見当たらなかったし。 Developer Preview – EC2 Instances (F1) with Programmable Hardware | AWS Blog これを見る限りふつーにLinuxサーバー上で開発する感じ。Windows上でしこしこ開発してるタイプでなければすぐになじめる雰囲気。なので残念ながら開発の苦痛は変わらない。

F1インスタンスとは別の、メモリ最適化インスタンス(R3 ?)かコンピューティング最適化インスタンス(C3 ?)のどちらかの上でVivadoを代表としたXilinxのツールをを走らせて開発する「FPGA Develoepr AMI」なるものが用意されるとかなんとか。まあなんか適当なインスタンスFPGA Developer AMIをデプロイするとVivadoがつかえるようだ。 インスタンスを起動するとVivadoのライセンスマネージャが起動して, vivado &って打ち込んでXWindowsでつかったりCUIで使う感じかと。

ページを見る限りFPGA Develoepr AMIとHDKは無償だそうだが、ここは無償でないと困るし、せめて格安でないとまずい。 有償だとして、bitファイルなど必要なデータをアップロードして使えるだろうから、AFIを作るのがめんどくさくなければFPGA開発環境をもつ企業なら問題はないだろう。 クラウドコンピューティングサービスを使う層って、業界的にも資本的にも開発環境を持てない・持たない企業が多いと思うので、開発段階で金がとられまくると厳しい気がする。

今回使われているFPGAはVirtexというハイエンドクラスの真ん中くらいのデバイスだがかなり大規模。するとそれを使いこなすための実装作業には時間がかかる。 それともHLSで生成された残念な回路を力業で動かすスタイルなんだろうか。よく考えたらハイエンドFPGAの無駄遣いをして力業でやるスタイルのほうがクラウドコンピューティングサービスでは合理的な気がしてきたf:id:tkysktmt:20161203004145p:plain

AFI(Amazon FPGA Image)とかいう謎の存在

FPGAのbitファイルはAFIとかいうAWS向けのImageになるらしい。 おそらくインスタンス上で実行したいFPGAアクセラレータを起動(コンフィグ)したりするためのものだと思う。 アクセラレートしたい内容ごとにFPGAのコンフィグデータが用意されていて、アプリケーションプログラムではアクセラレータの初期化をコールするだけみたいな、FPGAコンフィグデータの書き込みを意識しなくてよくなるようなものでは。名前的にHALのような抽象化するようなものではなさそうだが、そのへんなんかやってくれると嬉しい。

独学に必要なこと(個人の感想)

なんかながい

いま、ポエムを書くとき

電子計算機はどのように実現されているのか?
どうやってアプリケーションが実行されているのか?
インターネットはどうやって実現されているのか?

「コンピュータに関するすべて」を理解したくて情報系の学科に入ったはいいが、本を読んでも、授業を受けてもピンとこない。本での独学厳しい...という愚痴を見た。前半は日本語でおkと言いたくなる文だが、気分が落ち着いてから書かれた後半は割と普通。
anond.hatelabo.jp

興味はあるみたいだけど、立ち止まってるという「なにしに金払って情報学科に通っているんだ?」という状態。 教員にメールでも送って、その良く理解できない本を持参してアポとって質問しに行けばいいじゃないか。
独学の仕方がわからないとか、そういうのも質問すればいいじゃないか。
と言いたいが、この受け身な状態や、イメージがつかない感覚は非常に身に覚えがあるのでわからんでもない。

ブコメではボロカスに言われているが、興味を持っている対象はとても良いと思う。

OSより下の階層、たとえばALUとメモリの組み合わせで、program counterを進めながら動いてるんだよーという感覚はあるので、 それがOSとどういう風につながってるのか、とか、100均で売ってる電卓、あのデジタル表示の部分がどういう仕組みで動いてるの、ということを考えたり、 インターネットプロトコルでパソコンが具体的にどういうパケットを送信しているんだろう

どうなっているんだろうと不思議に思えるというのはひとつの才能だと思うから、立ち止まらずに取り組めば良いエンジニアになれるのではないか。
今、理解したいと思っている内容は正解やお手本がある段階のものだし、まだ若さも時間もあるし、指導者もいる。
天才でもなければ、まずはよくわからないまま手を動かして失敗して、たくさんの文献から正解を探したり、ネットできいてまた手を動かして...をひたすら繰り返すしかないと思う。 百均の電卓バラしてFPGAにつないでベアメタルソフトウェア(OSなしのソフトウェア)でも書けば、だいぶ理解が進むと思う。
ラズベリーパイとかでもまぁいいけど、CPUに必要なものが自作できるし試せるから、再開発可能な車輪がたくさんある。 ARM搭載FPGAとかにしておけば、FPGA領域に手を出せなくてもラズベリーパイと同じくARMマイコンボードとして使える。

学校の授業は無意味なものではなく、やりなおしの勉強するときや、技術的に新しいことに挑戦する際の基礎体力みたいなものとして意味がある。多くの人にとっての英語や数学みたいなものだろう。

自分は就職活動しているときの求人情報でFPGAの存在を知って、「CPUとか作れるんだ。へー、おもしろそう」ってだけの興味本位で潜り込んだために、半導体関連のまともな教育を受けていなかったデメリットをとても感じている。とりあえずの仕事になれてきて色だそうとすると今までのツケがのしかかる。 記憶の片隅に残っているのと、ゼロからスタートではだいぶ辛さ違うと思う。数学の勉強しなおしとかでよくある「あー!そういやこれやったわ」みたいなのが全くないし、単語すら見たことも聞いたこともなかったり。
かしこい頭脳は持ち合わせてないわ、スキルも足りない。でも、なんだかんだいって興味が収まらないからできないなりにやるわけです。

実務ではどうやってるのか具体的に知りたい気持ちもわかる。けれども、具体的となると職場によって様々なので、実際に働くしかない。働けなくても、MISRA-Cみたいなある種の業務上要求されることがある規格もののコーディングガイドラインとか、Linuxのコーディングガイドラインを読んで、従ってみるというのもあるが。

なお、LSI/FPGAでのハードウェア開発だと以下の本が、平易で良いと思う。筆者の実務経験を交えて、筆者はアーキテクチャをどう決めるかについて書いてある。浮動小数除算器の設計コードや、軽量CPUの設計コードとか簡易アセンブラの作製法とかまで書いてある。

LSI/FPGAの回路アーキテクチャ設計法 (DESIGN WAVE MOOK)

LSI/FPGAの回路アーキテクチャ設計法 (DESIGN WAVE MOOK)

独学に必要なこと

自分が思うに以下の4つ。言うは易く。

  • プライドを捨てる
  • 手を動かす
  • 検証する
  • 環境を活用する

食指がどうにも動かないのであれば、むいていないとか、実は大した興味でないということで、諦めるのもOK。 興味本位でいろいろ手を出してみて、自分から動きだすようなものを若いうちに見つけるほうが大事だと思う。

独学のやり方についてはベストセラーでおなじみのポリアの本が良い。独学に限らずいろんな応用ができるし、表紙めくっただけでどのようにやればいいのか即わかるのもいい。

いかにして問題をとくか

いかにして問題をとくか

プライドを捨てる

個人的にこれが一番難しいと思う。捨てきれない。にんげんだもの
死ぬまで気をつけるしかないと思う。

  • 他人と自分を比較しない
    他人との比較は無意識にしまうものなので、自制する。 「俺のほうがこのスキルが優れている」だとか「あいつはダメだ」、「この集団の中で俺は一番ダメだ」とか思い始めたら思い直す。 こういう比較にとらわれていると、全くと言っていいほど成長しないと経験上わかったのでしないほうがいい。
    まじめに考えるのは期末試験だとか人事評価の時くらいで十分。 そんなことをしている暇があったら調査、実験、実装、なんでもいいから手を動かす。 伸び悩んでるときとか、なんかしら問題あるときとか、老害化したときとかにこうした思考をしているので、見直す。過去の自分と現在の自分の比較はOK。やる気出る。

  • わからないこと、知らないことを把握し、隠さない
    知らないことはまあいいとして、わかっていないことが多い状態だと、わからないことの把握は結構難しい。理解が浅いと、わかっていると思っていたことが実はわかっていなかったとかよくあるし、浅すぎるとわからないことがわからない状態に。自分の知る限りだけど、賢いと感じる人ってこのへんはっきりしてるし、隠さない。

  • 間違いを認める
    難しい。ピタゴラスはサモスの賢人だったけれど、無理数の存在を認めなかったし。
    個人的には、成功体験の繰り返しが、最終的に人の成長を阻害すると思っている。今までうまくいっていたやり方に固執したり、何かで素晴らしい成功を収めて天狗になったまま帰ってこなかったり。 自分の判断や考えは正しいとはかぎらないということを頭の片隅にいれるくらいしかないのか。

手を動かす

やればできる。やらないとできない。年単位でブランク開くとできなくなる。
最初は写経のように真似して覚えるしかない。

  • 設計する
    ポリア本でいうところの第1、第2に相当。
    設計仕様書とか要求仕様書とか情報系の学校で書くんだろうか?
    学部卒で就職して一番最初に困った。
    設計というのは言ってみれば考えまくって仮説を立てることなので、類似例を調査したりいろんな案をだしては潰してつくっていく。
    つまり卒論。頭を使うので、ひたすらやるしかない。
    学部卒でなければ卒業までに論文10本くらいは書くらしいからそれが応用できる。

  • 実装する
    ポリア本でいうところの第3に相当。
    頭はあんまり使わない。
    「あれれ?」とか「うーん」って頭使い始めたら設計に不備がある。
    設計に立ち戻ることはよくあるので、気軽に戻る。

検証をする

ポリア本でいうところの第4に相当。
次につなげるために、うまくいかなかったこと、うまくいったことについてふりかえる。 自分だけかもしれないが、うまくいかなかったことは自然と考えを巡らすけれど、うまくいったことについてはあまり考えないことが多いので、注意する。 なお、組織においてPDCAのCとAがキチンと実行されることはあまりない...。Pすらもないことも。 個人的にはPよりもCとAに時間をかけたほうがいいと思う。Pの精度が上がる。

環境を活用する

学生はわからなくてあたりまえだし、新卒も若手もできないことはいろいろあるけど若いというだけで許される雰囲気がある。なのでかなりアホみたいなレベルの疑問や質問は早い段階にする。その機会を逃すと、たとえば40代になったり肩書きがいろいろついたりすると、質問がとてもし難い雰囲気がほとんど。でも、必要なことをわからないまま、できないままに年月を重ねるのが一番やばい。
ただ、周りの人次第なところがあるので、「最近の若者は〜」的な感じなことをだけ言って、ちゃんと教えてくれない人もいる。学校の教員であれば、まあメシの種だし無下に扱われることは少ないと思う。会社だったら「学校で習わなかったのかよ〜」とか小言とか言いつつも教えてくれる。教え方が合わないとかはあるかもしれないが。
専門書が多数ある一般の図書館とかそうそうないし、各種学割もあるし、なにより若さと残り時間が段違い。
SNSだとかインターネットのおかげで実際に仕事をしている人たちのあれやこれやを眺めたり、直接質問したりもできる。

おわりに

卒論のおかげで能動的に物事を探求する行為、いわゆる学問をするということを自分なりにでもイメージがはっきりしたのが、大学へいってもっともよかったこと。
覚えが悪かったり、かしこさが足りないとか、これまでの勉強不足とかは気にしたところで今更どうしようもないので、折り合いつけてやっていくしかない。 でも、一回就職してから大学行くような世の中にするといいんじゃないかなぁ、とか思いながら社会人院生とかたまに見てる。 やりなおせるなら小学生からやりなおしたいところだが。

GoogleのTensorFlowのハードウェア高速化について

まとめ

  • ソフトウェアとしてのTensorFlowを公開する前に専用ASIC作ることを決めてたGoogleの決断力
  • 戦略的に使われる金の力はすごい
  • 手持ちのTeslaなどのGPUは売り払い、その金でGoogle Cloud Platformを使おう
  • 貧乏人はFPGAGPU使ってろ

はじめに

Googleが自社の機械学習向けライブラリTensorFlowを高速化するハードウェア「TPU」を1年前以上から稼働させていたという記事が流れてきた。

jp.techcrunch.com

GPUFPGAを使ったハードウェアアクセラレーションはいまとなっては珍しいものではなくなったが、この記事の恐ろしいことはASIC、つまり完全なるカスタムなLSIGoogleが作ってしまったということ。
ASICを作るというのはだいぶヤバい。
GoogleはVP9のRTLを提供していたり、ハードウェアエンジニアも結構雇って怪しげなハードウェアを研究開発させているので、作ろうと思えばいつでも作れる会社だ。なので技術力が特別すごいという意味ではない。インターネット系企業と考えると異常だけど。
The WebM Project | VP9 Video Hardware RTLs

TPUは機械学習の学習のアクセラレーターということだそうなので、今回一番痛手を受けるのはGPUベンダだろう。 スループットも消費電力も負けたGPUなど、おとなしくゲーム画面作っていろという感じだ。 FPGAは第3のプロッセサーなどというのは妄想に終わりそうで痛手を受けるけれども、本来の魅力であるIOの柔軟性などもあるので、その方面からある程度はくいこめるかも?

ハードウェア開発について

ハードウェアやったるぜ!という意気込みはあっても、1品種のLSIを作るとなると時間もかかるし金もかかる。
開発期間年単位、開発費は億単位。
何百万個チップを作るとかいろいろと状況によるからなんとも言えないが、先端よりのプロセスでまともに1プロジェクト完遂するとなると開発期間1年で実質10億とか?

CPUのプロセスが14nmだとか言っている現代で、90nmとかでもとりあえず1億は用意しないと声を発する権利すら与えられない。
ハードウェア開発自体の技術的な難しさはあるが、そんな瑣末なことよりも金の心配がすべてだ。
よく金に物を言わせるというので「札束での殴り合い」などと表現されるが、ハードウェア開発においてはそれが「金塊での殴り合い」に変わる。 400トロイオンスのラージバーだ。

プロジェクト化されるような仕事は成功する保証などない(簡単なことはプロジェクトにならない)のだから、失敗を考えると10億、20億とかは捨てる覚悟が必要。
Googleですらチップのリビジョンが2あるくらいなので、1回で欲しいチップが作れるはずはまずない。
人員も、開発環境もない0から状態でハードウェアを1つ作ろうと思ったら100億くらいは用意したい。

そんなわけで、ASICを作るのは主に金がつらいので、FPGAGPUといった準汎用チップを活用していた。 FPGAGPUも20nm付近のかなりの先端のプロセスなので、90nmとかのプロセスで一から作るより、1000個くらい欲しいとかいうレベルなら非カスタムであっても買ってしまったほうがトータルで安いことが多い。

最強はASIC

金や時間といったコストが最強に高いASICだが、このコストを回収できるような算段ができていれば、消費電力、性能、1チップあたりの単価において最強のパフォーマンスを発揮するのがASIC。 たとえばAppleiOSデバイス向けに自社のカスタムASIC(CPU)を作っている。
以下の記事をみるとiPhoneは3ヶ月間の集計で4、5000万台売れている(本当か?)とか書いてあるので、一ヶ月あたり1000万個はカスタムCPUチップが消費される。iPadなどにも同様のCPUは使っているので2000万個くらいかもしれん。

CNN.co.jp : アップルの「iPhone」販売台数、10億台近づく

これだけ数が出るといくら初期に開発コストがかかるとはいえASICが最強。 回収できてしまえば最強。 これくらいの数になると、たとえ瑣末であってもカスタム要望あるのにASICしないとか頭がおかしい疑惑が出てくる。

なお、MacbookなどのAppleのパソコン系は四半期で500万台とかいうレベルなので、タプティックエンジンみたいなiOSデバイスでも使えるものでもなければカスタムASICをおこすメリットは低いと判断されているっぽい?

高度な戦略

すでに1年もの期間、カスタムハードウェアを稼働させていたという点から、Googleが早い段階から機械学習とTensorFlowに並々ならぬ関心を持っていることがわかる。

以下の記事は今回のTPU設計に関係したベテランハードウェア設計者へのインタビュー記事。 www.eetimes.com

これを見ると

  • 3年以上前にはFPGAGPU、CPUでの評価をしていた
  • その結果(3年くらい前)にTensorFlow専用ASIC作る決断をした
  • 2016年秋が楽しみ

ということが書いてある。
2013年頃というとGoogleが16000個のCPUを使って猫を認識するDeep Learningらしきものをやった頃。 wired.jp

2013年頃はDeep Learningは一般レベルでは今ほど騒がれず、まだまだ未知も部分が多かったため、機械学習といえばデータマイニングためでSVMとかが幅をきかせた頃のように思う。

Google Cloud Platformのリリース(Compute Engine基準で2013とする)、TensorFlow(2014,5)、そこへTensorFlowを高速化できるハードウェアの存在を公表(現在)というコンボがすごい。 普通はASIC作ったらいかに大量に製造して、販売して、投資を回収するか?という物理的にモノをどう売りさばくのがポイントになる。 でもGoogleはTPUは自分たちのサービスの差別化のためだけに使い、TPU自体は販売するつもりはない。
www.eetimes.com

Googleストリートビューなどの自社サービスの改善や、Google Cloud PlatformでTPUのパワーを使わせてしまえば(すでに使わされているが)、クラウドサービス含め、これまでの本業経由から回収できる。TensorFlowはどマイナーなフレームワークではないと思うし、むしろ利用情報が多くてとっつきやすいものだと感じているので見込みが良い。
TPUがもたらすであろう消費電力に対するパフォーマンス効率からランニングコストはGPUなどより格段に下がるはず。はず。
詳しいことは秋に期待。

Microsoftのハードウェアアクセラレーターはオワコン

目的がわりと汎用的で、機械学習専用機でもTensorFlow専用機でもないのでFPGAは妥当だろう。
GoogleみたいにTensorFlow専用機つくる!と絞り込みしてないし。
仮にASIC作るならFPGA間通信などをハードマクロ化したり、リコンフィギュレーション部に手を入れたりしたカスタムFPGAを作るほうがマッチしていると思う。 ハードウェア設計部隊はいるし、金もあるからからやろうと思えばできるはず。 重要顧客だしIntel神がもたらすであろうXeon+FPGAとか関わってそう。

その他

8bitの精度があればよいというのはアクセラレート対象であるTensorFlowにくわしくないとわからん。事実だとすれば、CPUやGPUはだいぶ無駄な演算している。8bit以上あると性能上がる、例えば16bitなら2倍の性能とかであれば、今回の8bitは必要十分な精度でしかないのであまり注目してもしょうがないきがする。

ムーアの法則が7年うんぬんは忘れても良いと思う。 「同等の性能を持つGPUが登場するにはあと7年必要だ」的な見積もりとかそういうレベルの話みたい。 性能的にはGPUの10倍あたりらしいので、ムーアの法則とからめると7年というのはそのへんからきてるっぽい。

GPUFPGAでのアクセラレーションを検討する程度のことは当たり前レベルな雰囲気。検討結果がよければASICつくるのも当たり前になるのか。

編集画面がいろいろ変わってて戸惑った。