技術記事 約3分

今後の予定

シリーズ連載をします

長く続くかは本当に私のモチベーション次第なんですがしばらくの間は週一回を目安にHigh Performance Computingに関する基本的なことを書いていきます。(長く続けるためにMarkdownでBlogが更新できるJekyllにしたのだが)

基本的なことというのはEasyってことではなくて, Fundamental, もしくはBasicなことです。研究室に配属された4年生から修士の2年までにぶつかった壁とか基礎的な考えが抜けていたのでミスしてしまったことなどを実体験を踏まえながら書いていこう的なことです。

なんでこんなことをするのかというと, High Performance Computingに関することはISUCONなどのWebの高速化に比べて体系的なまとめられ方をされた本や記事がなく, 国内の既にわかってる人々の間で共有されている暗黙知のようなもので構築されていることが多いと感じているため, ちょっとまとめてみようと思ったためです。とはいいつつ所詮修士号(予定)の学生のブログなので間違ったことを書きうる可能性はあると思います。

あとはブログでCUDA Extended GPU Memoryについての発信をしていきたいのですが, そのために読者が頭に入れておいたほうが良い知識の提供をするためです。また, 新しいデバイスやモデルが出るたびにとにかく速い, すごいと言うだけの人を多く見かけるため, 何故早くなっているのかなどの議論が日本で増えてくれることを望んでいます。

前提知識はコンピューターサイエンス系の学科で4年間学んできた人を対象とします。プログラミング言語, Operating System, 基本的なアルゴリズムについての授業を受けたことがあればおそらく大丈夫かと思います。

コンテンツ

コンテンツは今ブログ書きながら思いついた順に並べていきます。今の所は2つテーマが思いつきました。

1. 実験データとカタログスペックの見方

来週は主に実験データを見たときに何を考えるべきかを書きます。これは実験データの計測結果の妥当性を考えるために必要です。記事中では行列積を題材に計測結果が本当にこの計測値で良いのかをデータシートのカタログスペックと照らし合わせながら検証する方法を扱います。この記事を読むことであなたは新世代アーキテクチャや次世代プロセッサーといったHypeに惑わされなくなります。キーワードとしてはBandwidth, FLOPS, Rooflineぐらいでしょうか

2. モデリングと仮説, 見積もり

  1. 実験データとカタログスペックの見方では単一の演算についての計測結果の妥当性を検証しました。しかし実際にはCUDA KernelやSIMDチューニング屋さん以外は単一のカーネルのみを見ることはなく, システム全体の高速化をするはずです。このようなときにどう取り組むのかを具体例を使って説明していきます。また, 計測値の下限と上限を見積もる方法を説明します。キーワードとしてはProfile, モデリング

とりあえずこの2つに関してを解説してCUDA Extended GPU MemoryやLLM Servingについて説明していこうと思います。