@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
Neuron Runtime の Getting started: Installing and Configuring Neuron-RTD を眺めていたら、input feature map buffers と output feature map buffers 用のメモリ領域として、2MB hugepages を使っていると。それも、1つの Inferentia に付き、128個 つまり、256MBも。
hugepages を使うために、Kernelの再構築は必要はないんですね。
sudo sysctl -w vm.nr_hugepages=128
Huge Pageについては、こちらに説明があります。通常のHuge Pageのサイズは、2MBのようです。また、Huge Pageはスワップアウトされないと。
Linuxでは、1 pageが4KB。おまけに、PCIe のパケットは 大体256B。Mrdの時は最大4KB(Host Memory => Accelerator)を要求できるけどね。4KBだと、1 page と同じ。
なので、4KB/page ではなく、hugepagesを使って、2MB=512*4KBとなり、512倍になるんだよね。。。うふふ。
それから、neuron-ls というコマンドを使うと、デバイス情報が出てきます。
こんな感じ(引用です)
/opt/aws/neuron/bin/neuron-ls
+--------------+---------+--------+-----------+-----------+------+------+
| PCI BDF | LOGICAL | NEURON | MEMORY | MEMORY | EAST | WEST |
| | ID | CORES | CHANNEL 0 | CHANNEL 1 | | |
+--------------+---------+--------+-----------+-----------+------+------+
| 0000:00:1f.0 | 0 | 4 | 4096 MB | 4096 MB | 0 | 1 |
+--------------+---------+--------+-----------+-----------+------+------+
| 0000:00:1e.0 | 1 | 4 | 4096 MB | 4096 MB | 1 | 1 |
+--------------+---------+--------+-----------+-----------+------+------+
| 0000:00:1d.0 | 2 | 4 | 4096 MB | 4096 MB | 1 | 1 |
+--------------+---------+--------+-----------+-----------+------+------+
| 0000:00:1c.0 | 3 | 4 | 4096 MB | 4096 MB | 1 | 0 |
+--------------+---------+--------+-----------+-----------+------+------+
4つのPCIデバイス (1c.0 ~ 1f.0) が繋がっているように見えますね。各デバイスには4コアと2つのメモリチャネルで、各メモリチャネルには4GB接続していますね。
それから EAST/WEST なるものがあってこれはチップ間の接続を示しているもので、最初のチップと最後のチップはどちらかしか接続していませんね。
どうやら、こんな感じに接続していると思います。
AWS Inferentia のボード上のチップの接続の妄想 pic.twitter.com/YLf7tJ4CUI
— Vengineer@アマゾンプライムで映画三昧 (@Vengineer) 2020年3月4日
講演のプレゼン資料の14頁には、ボードの写真が載っていて、チップは4個載っているっぽいのですが、メモリは別途載っていそうもないんですよ。ということはチップにメモリが付いている。となると、HBM2なんだろうね。4GB + 4GB とあるので。
もしかしたら、1パッケージの中には、チップ+HBM2(4GB) が2組あるかもしれないので妄想をもう一つ。こちらだと、PCIe をSwitch経由でこんなにいっぱいになっちゃうのがちょっと気になりますが。。。。