最近の話題 2017年7月1日

1.AMDがZenコアベースのサーバプロセサEPYCを発売開始

  2017年6月21日のSemiAccurateが,AMDのEPYCプロセサの発表を報じています。8コア16スレッドでベースクロックが2.1GHz(ブースト時は2.9GHz)のEPYC 7251から32コア64スレッドで2.2GHzクロック(ブースト時3.2GHz)のEPYC 7601まで9品種が発表されました。

  9品種とも8チャネルのDDR4インタフェースと128レーンのPCIeポートを備えています。

  消費電力は,7251が120Wで。7601は180Wとなっています。8コアの7251が120Wというのは大きいのですが,8チャネルのDDR4と128レーンのPCIeというのは,Multi-Chip-Moduleに8コアのZeppelinチップを4個搭載しているわけで,やむを得ないところです。

  2ソケットの構成で,7601は,IntelのE5-2699Av4に比べて+47%の性能アドバンテージがあり,かつ$4000以上安いとのことです。またあ,7251とE5-2620v4と比べると,7251は$400以上安く,性能は+23%高いということです。

  2017年6月26日のSemiAccurateの記事に,4つのダイが載ったEPYCのパッケージの写真が載っています。4つのダイ間は,42.6GB/sのInfinity Fabricと呼ぶリンクで完全結合されています。また,2ソケットの場合は,4つのダイがそれぞれ対応するダイと38GB/sのInfinity Fabricで結ばれ,2つのパッケージ間のバンド幅は152GB/sとQPIに比べて,ずっと大きなバンド幅となっています。

2.AMDが科学技術計算向けのRadeon Instinct GPUを発表

  2017年6月22日のSemiAccurateが,AMD の科学技術計算向けのRadeon Instinct GPUの発表を報じています。MI6,MI8,MI25という3種で,MI6はPolaris,MI8はFijiベースで,MI25が新規のVegaベースとなっています。

  MI25は,64個の次世代Compute Unitを搭載し,全体では4096個のストリームプロセサを持っています。そして,単精度の浮動小数点演算で12.3TFlops,16bitの半精度では24.6TFlopsの演算性能をもっています。

  メモリはHBM2を使用していますが,メモリインタフェースは2048ビットで945MHzで,バンド幅は484GB/sとのことで,HBM2の搭載は2個にしてコストを抑えたようです。最もAMDは最初はSignle Data RateのHBMを使っていたので,HBM2になって,同じバンド幅を2個で実現できるようになったので,HBMの個数を減らしたと見るべきかもしれません。HBM2のメモリ容量は16GBとなっています。

  MI25の性能は,単精度で10.6TFlopsのNVIDIAのP100 GPUを上回りますが,今年中には,14TFlopsのVolta V100が出てくるので,それと比べると,多少,劣ることになります。また,Voltaは半精度のテンソル演算では112TFlopsとなるので,5倍近い差を付けられることになります。

  そして,消費電力はMI25は300Wでデュアルスロット,MI6は150Wでシングルスロット,MI8は175Wでデュアルスロットとなっています。

  Radeon InstinctはROCmオープンコンピュートのソフトウェアプラットフォームを使っており,ディープラーニングのフレームワークとしては,Caffe,Caffe2,TensorFlow,Torch7,MxNetをサポートしています。

3.富士通がISC17でDLUを発表

  富士通がDLUと呼ぶディープラーニング向けのプロセサを開発しているということは発表されていのですが,他社に比べて性能/電力が10倍を目指すという以外の詳細については,全く情報がありませんでした。

  このDLUに関して,ISC17で富士通の丸山氏が発表を行いました。それによると,DPE(Deep learning Processing Element)という演算器群をリング状に接続したDPU(Deep learning Processing Unit)を多数搭載し,DPUもリング状に接続されるので,DPEを単位要素とした2次元トーラス接続のように見えます。

  発表スライドでは,この2次元トーラスの面が4枚,描かれています。そして,この演算器群にホストI/FとインターチップI/F,そしてHBM2が付いたものがDLUと書かれています。そして,多数のDLUをオフチップインタコネクトでToFuのように3次元トーラスに接続して大規模化できると書かれています。

  DPEは,通常のCPUコアと比べると~100倍という大きなレジスタファイルに8SIMDの演算器が付いています。このDPEが16個,ループ状に接続されたものがDPUとなります。何個のDPUがチップに集積されるのかは発表されませんでした。

  仮にチップに8K DPEとすると,1面では,2K DPEで128DPUということになります。これだとトーラスのX方向が16に対してY方向が128とアンバランスですから,各面に16×16のトーラスが8個あるのかも知れません。

  演算器はFP32,FP16×2,INT16×2,INT8×4の演算ができ,具体的な長さは書かれていませんが,INT8やINT16を使う場合は,入力データよりビット数の大きいアキュムレータを使っています。これにより,FP32を使うのに比べて少ない電力で計算ができ,精度ロスの低下は小さいとしています。

  INT16の演算の後にINT32のアキュムレータを使うなどという構成は他社のチップにも見られますから,これは一般的なアプローチです。しかし,GoogleのTPU2やNVIDIAのVoltaは,学習をやるのにINT16ではなく,FP16を使っており,本当にINT16と長いアキュムレータで良いのかは心配なところです。INT16で同じ認識率を達成できるとしても,精度が劣るために,学習に必要なエポック数が増えてしまうと,実質的な性能が下がってしまいます。

  この発表では,詳細は分からないので,私の誤解かも知れませんが,GoogleのTPUのように一方の入力は重みDRAMから,他方の入力をSRAMバッファからと言う作りの方がハードや消費エネルギーが少なくて済むような気がします。入力を巨大レジスタファイルにすると自由度は増えますが,その分,アクセスにエネルギーが多く必要になると思います。また,演算器を繋ぐチップ内のネットワークが2次元トーラスとすると,これも自由度が多すぎるような気がします。

  これで,競合チップの10倍の性能/電力が達成できるのか,お手並み拝見です。



inserted by FC2 system