最近見つけた、コンピュータアーキテクチャに関する素晴らしいウェビナー(Computer Architecture, ETH Zürich, Fall 2019)

(更新

Recently found useful webinars on the Internet about computer architecture, including GPUs.

最近、Nvidia 社が新しい Jetson Nano 開発キット(NVIDIA Jetson Orin Nano Developer Kit)を発表するなど、機械学習のための組込設計マイコンボードの話題に事欠きませんが、GPU だけでなく、古典的な SIMD アーキテクチャを含めて、機械学習のためのコンピュータアーキテクチャについて基本からきちんと勉強し直してみたい、とお考えの技術者の皆様は多いのではないでしょうか。

Nvidia 社の CUDA を学ぼうと思えば、同社が公開している技術資料やチュートリアルはもちろん有益なのでしょうが、世界中の研究者が中立的な視点で解説している技術ウェビナー(講義)はないかと、ずっと探しておりました。

私が最近見つけたのが、(3年ほど前のもので少し古いのですが)以下の講義(ウェビナー)群です。

これは、スイス連邦工科大学チューリッヒ校(Eidgenössische Technische Hochschule Zürich)が公開しているもので、2時間を超える講義が、24コマにもわたって網羅されています。無償でこれだけ内容の濃い講義を視聴できるものは、それほど多くはないでしょう。

追記: 同校のウェブサイトをよく調べてみたら、2022年版の講義も公開されていました。御参考ください。

さらに、こちらのサイトには、他のコースも多く網羅されています。昔だったら、日本に住みながらスイス連邦工科大学の講義を(無償で!)聴講できるなどあり得ないことでした。学習意欲のある学生、研究者、若手技術者にとって、本当に素晴らしい時代になったものだと思います。

以下に、タイトルを列挙してみます。

  • L1: Introduction and Basics
  • L2a: Memory Refresh
  • L2b: Course Logistics
  • L3: Memory Trends, Challenges, and Opportunities
  • L4a: Memory Solution Ideas
  • L4b: RowHammer
  • L5: Accelerating Genome Analysis
  • L6a: RowHammer II
  • L6b: Computation in Memory
  • L7: Computation in Memory II
  • L8: Computation in Memory III
  • L9a: Simulation
  • L9b: Low-Latency Memory
  • L10: Low-Latency Memory
  • L11: Recent DRAM Research I Described
  • L11b: D-RaNGe: True Random Number Generation with Commodity DRAM
  • L11c: Voltron: Reduced-Voltage Operation of Commodity DRAM Devices
  • L11d: Eden: Energy-Efficient High-Performance DNN Inference with Approximate DRAM
  • L12: Recent DRAM Research II Described
  • L12a: EIN: Understanding and Modeling Error Correction in DRAM
  • L12b: SoftMC: Flexible and Open-source Memory Controller
  • L12c: CROW: Improving DRAM Performance and Energy Efficiency Using Copy Rows
  • L12d: SMASH: Hardware-software Co-design for Sparse Matrix Compression
  • L13a: Memory Controllers
  • L13b: Memory Interference and Quality of Service
  • L14: SIMD Processors and GPUs
  • L15: Memory Interference and Quality of Service II
  • L16a: Memory Interference and Quality of Service Wrap Up
  • L16b: Emerging Memory Technologies
  • L17: GPU Programming
  • L18: Prefetching (Guest Lecture by Stephan Meier)
  • L19a: Emerging Memory Technologies II
  • L19b: Heterogeneous Computing Systems
  • L20: Bottleneck Acceleration
  • L21a: Multiprocessing
  • L21b: Memory Ordering (Memory Consistency)
  • L22: Cache Coherence
  • L23: Interconnects
  • L24: Interconnects II

個人的には、L14: SIMD Processors and GPUs と L17: GPU Programming を、集中して視聴してみたいと思いました。

最近は、組込プロセッサ SoC による(いわゆる)エッジ ML(機械学習)推論技術に関して、TensorFlow Lite、TensorRT の性能に関するベンチマークが多く見られます。しかし私としては、コンピュータアーキテクチャ、マイクロアーキテクチャに関する理解なしでは、そのようなベンチマークに関する議論は有益なものとはならないように感じています。

機械学習の訓練(トレーニング)や推論において、どのような演算処理が必要で、どのようなアルゴリズムが提案されているかを正しく知り、同時に、そのような演算処理やアルゴリズムに対して、どのようなコンピュータアーキテクチャ、メモリアーキテクチャが有用なのかという、理論的な考察がもう少しなされてきても良いのではないか、と私は考えています。

正直申し上げて、コンピュータアーキテクチャに関する私の知識も古くなってきているので、今後も勉強を続けていきたいと考えています。