@Vengineerの戯言 : Twitter
SystemVerilogの世界へようこそ、すべては、SystemC v0.9公開から始まった
TwitterのTLに流れてきた AWS Inferentia
発表時の スライド 。これをきっかけとして、いろいろと調べてみました
今週は、AWS Inferentia と サービスとしての AWS EC2 inf1 について書いていこうと思います。
こちらのビデオ では、AWS Inferentia を利用したサービスについて説明しています。
まずは、AWS Inferentia と AWS EC2 inf1 とは?
Inferentiaは、Neuronコア + Cache が 4個と外部DRAMのチップ。Cacheを持つことでモデルに必要なパラメータ等を外部DRAMから読み出す必要がないと。
AWS EC2 inf1 では、この Inferentia Chip を 4個載せた PCIe Board が利用できるというもの。Neuronコアでは、FP16、BF16、および INT8をサポート。
サービスとしては、次の4つのタイプ。
- inf1.xlarge : vCPUs (4)、Memory (8GB)、Inferentia Chips (1)
- inf1.2xlarge : vCPUs (8)、Memory (16GB)、Inferentia Chips (1)
- inf1.6xlarge : vCPUs (24)、Memory (48GB)、Inferentia Chips (4)
- inf1.24xlarge : vCPUs (96)、Memory (192GB)、Inferentia Chips (16)
1チップ、4チップ、16チップということなので、最初の2タイプは1ボードの中の1チップだけを使うようですね。4チップで1ボード、16チップで4ボード。
4ボードでは、vCPU(24) * 4 って感じですかね。メモリも 48GB x 4 = 192GB
1チップの場合は、NeuronCore Pipeline Modeは使えないと。
お値段は、1ボードで1時間2ドル以下ということですね。1日5000円。
- inf1.xlarge : $ 0.368/Hr
- inf1.2xlarge : $ 0.584/Hr
- inf1.6xlarge : $ 1.905/Hr
- inf1.24xlarge : $ 7.619/Hr
Alexa service にて、inf1 を利用した事例が ビデオのこの部分 から出てきます。
inf1 を使うには、AWS Neuron SDK というものを使って、下記のフローでTensorFlow、MXNet、PyTorchのモデルからInferentia Chip用のコードに変換して使います。
- ChooseML Framework
- Build Model
- Train Model
- Compile Model using AWS Neuron
- Deploy Model on Inf1 and AWS Inferentia
現時点では、まだ、PyTorch には対応できていないようです(PyTorchで呼べるようになっているが、内部的には、TensorFlowに変換しているっぽい)
Compile Model using AWS Neuron の部分で、FP32 を BF16 に変換しているっぽい。