Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

AWS EC2 inf1 について、もうちょっと詳しく

@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 なるものがあってこれはチップ間の接続を示しているもので、最初のチップと最後のチップはどちらかしか接続していませんね。

どうやら、こんな感じに接続していると思います。

 講演のプレゼン資料の14頁には、ボードの写真が載っていて、チップは4個載っているっぽいのですが、メモリは別途載っていそうもないんですよ。ということはチップにメモリが付いている。となると、HBM2なんだろうね。4GB + 4GB とあるので。

もしかしたら、1パッケージの中には、チップ+HBM2(4GB) が2組あるかもしれないので妄想をもう一つ。こちらだと、PCIe をSwitch経由でこんなにいっぱいになっちゃうのがちょっと気になりますが。。。。

f:id:Vengineer:20200307115814j:plain