Vengineerの妄想(準備期間)

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

AWS EC2 inf1 とは?

@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 に変換しているっぽい。

 

明日は、AWS Neuron SDK を調べてみたいです。