本当は怖いHPC

HPC屋の趣味&実益ブログ

Juliaの16進浮動小数点リテラル

Julia言語のチュートリアルを見ていて、16進浮動小数点リテラルなるものが存在するのを知りました[1]。書式としては、

  • 先頭に0xをつける(通常の16進リテラルと同じ)
  • 指数部の記号として p を使う
  • ただし、指数の底は2

ということで、例を見てみると

julia> 0x1.8p3
12.0

julia> (1.0 + (1/16*8)) * 2^3
12.0

ちなみに、これはJuliaだけの機能ではなくて、Javaにも存在するらしい[2]。

ふむふむなるほど。科学技術計算では使う機会がないこともなさそう…

[1] Integers and Floating-Point Numbers — Julia Language 0.5.1-pre documentation [2] Hexadecimal Floating-Point Literals (Joseph D. Darcy's Oracle Weblog)

最近の気になったニュース 2017/03/06

プロセッサ関係

Ryzen続報

AMDのRyzen CPUの続報がいろいろ出ています。

RyzenをHPCで使おうとしたベンチマーク - Qiita

【レビュー】AMD「Ryzen 7 1800X」はIntelの牙城を崩せるか? ~各種ベンチマークを実施 - PC Watch

【後藤弘茂のWeekly海外ニュース】AMD「Ryzen 7」の半導体チップの姿 - PC Watch

NVIDIA GeForce GTX 1080 Ti発表

NVIDIAがゲーム向けのコンシューマーGPUであるGTX 1080Tiを発表しました。Pascal世代のP102、GDDR5Xメモリ11GB、メモリ帯域が484GB/s、ピーク演算速度は単精度10.36TFlops。とうとう大台の10TFlopsに乗ってきました。

NVIDIA CEO Jen-Hsun Huang Unveils GeForce GTX 1080 Ti, World’s Fastest Gaming GPU | NVIDIA Blog

機械学習/AI関係

Line Announces Smart Assistant Clova, A Potential Alexa Competitor

メッセージングアプリのLINE株式会社が、Clovaという製品を発表しました。AmazonのAlexaと似ている据え置き型の対話型アシスタントです。

夏頃に、スマートフォン上のアプリと、音声端末である「WAVE」が日本と韓国で提供開始、ディスプレイ付きの「FACE」が冬ころの提供ということです。

Amazon Alexaは日本ではまだ提供されていませんし、GoogleのアプリもPixel以外のAndroid端末での提供は始まったばかりです。日本語の認識がどの程度なのか、またAmazonはGoogleに対抗できるのか興味深いです。

その他

AWS S3 の大規模ダウン

Amazon AWS S3サービス(Simple Storage Service)が4時間に渡ってダウンし、S3に依存している多くのサイトが影響を受けたそうです。直接の原因はヒューマンエラーで、しばらくトラブルを大規模なトラブルを経験していなかったことが逆に災いしてサービスの再起動に時間がかかったということです。また、その他の特徴としてはS3のダッシュボード(システムの状態を確認できるモニター)自身が影響をうけて正常動作しなくなったという点です。

毎度のことですが、現代のWebにおけるAmazon AWSの存在の大きさに気付かされます。

米国東部(バージニア北部、US-EAST-1)リージョンで発生した Amazon S3 サービス障害について

AWS、S3の大惨事の原因を公開―ヒューマンエラーが発端だった | TechCrunch Japan

最近の気になったニュース 2017/02/27

プロセッサ関係

AMDのRyzen 7 CPUのベンチマークが公表,出荷間近

Innovation and Competition Return to High-Performance PCs March 2nd with Worldwide AMD Ryzen 7 Availability

西川善司の3DGE:「RyzenはCore i7よりこれだけ速い」――AMDが披露したベンチマーク結果をチェックする - 4Gamer.net

AMDの新世代CPUであるRyzen 7のベンチマークスコアが発表され話題になっています. Intelの同価格帯の製品と比べて大幅な消費電力と価格性能比の向上を達成しているということです.AMDはしばらくハイエンドの市場では姿が見えず,APU等によって別市場の戦いを挑んでいた印象でしたが(Playstation 4とか),ハイエンドのCPU+ディスクリートGPUという戦いの市場に戻ってきたようです.

Deep Learningの隆盛によって,Intel CPU + NVIDIA GPUという鉄板コンビにガチンコで喧嘩を仕掛けにいくということでしょうか.NVIDIAにはPowerアーキテクチャのIBMというパートナーもいるので,AMD単体でハイエンド市場でどれくらい戦えるのか注目です.AMDがしばらく席を外している間にNVIDIAはNVLINK等のエコシステムを着実に育てつつあるのでAMDが食い込めるでしょうか.

7月までにサーバー用のシリーズも発売されるということなので,もしかしたらその頃にはRyzen CPUを大規模に搭載したスパコンが登場して2017 NovのTop500に登場するのかもしれません.

HPC関係

スパコンのメモリ構成の将来

スパコンのメモリ構成について論じている2つの記事があったので興味深く読みました.

3D Memory Sparks New Thinking in HPC System Design

Hopping the flash stepping stones to DIMM future • The Register

前者The next platformの記事では,従来のDIMMメモリと3Dスタックのメモリの優劣とトレードオフについて論じています.伝統的なHPL(High Performance Linkpack)ベンチマークでは,コアあたり2GB程度のメモリがベストであるのに対して,HPCG(High Performance Conjuagte Gradient:共益勾配法)ベンチマークではコアあたり0.5GB程度が最適だとしています.このような違いにより,容量増加が容易であるDIMMメモリと,容量増加が難しいが要領に比例した高速なアクセスを提供できる3Dメモリの適・不敵が決まってきます.単純な優劣ではなく,アプリに応じたトレードオフが重要だということです.

一方,後者のThe Registerの記事では,NVM(Non-volatile memory:不揮発性メモリ)とDRAMの組み合わせや階層化によって,それぞれの長所を活かした最適化が可能であると論じています.新しい技術を使って構築されるSCM(Storage class memory)や,DIMMとNVRAMを組み合わせて実現されるNVDIMMなどが,大容量と高速アクセスを両立しアプリケーションを大幅にスピードアップできるとしています.またそのためには,OSを始めとするソフトェアレイヤの適応の必要不可欠です.

実際,3D stacked memoryはNVIDIA P100 GPUを始めとするアクセラレーターにも搭載されており,これらはホストのメインメモリ(DIMM)との間である種の階層的なメモリ構造を構成しているということもできます.

AI・機械学習関係

Tensorflow 1.0 リリース

Research Blog: Announcing TensorFlow 1.0

Googleがリリースしている機械学習フレームワークのTensorflowの1.0リリースがアナウンスされました.詳細は各所で書かれていますが,速度の向上・柔軟性の向上に加えて,APIの安定化が盛り込まれているのが大きいと思います.Deep learningの開発競争と性能の向上はこれからも続くのでしょうが,APIの安定化というのは1つの大きな節目であり,業界が新しいステージに進んでいくことの象徴のように思います.

Allreduce操作をカスタマイズしてDLを高速化

Propelling Deep Learning at Scale at Baidu AI Lab

BaiduのSillicon Valley AI Laboratoryで,OpenMPIのring allreduceという技術を使ってTensorflowにパッチを当てて高速化を行っているそうです. MPIでは,通信のパターンが抽象化されてAPIとなっているので,その実装には様々なパターンが有りえます.特にOpen MPIは拡張性が高い設計となっているので,内部のコンポーネントを取り替えることでカスタマイズが可能な設計になっています.

Allreduceというのは,全体で値を集約(reduce)したあと,さらに結果の値を全プロセスに配信するという操作です.これは機械学習系の実装ではよく出てくる話で,各プロセスが分散して学習した結果の行列を互いに送信しあって同期するために使われます.

具体的な中身としては,GPU上に存在するデータに対してAllreduceをする際に,まず各GPU内でreduceを行い,それをさらにノード内(CPUメモリ)でreduceし,最終的にそれらをネットワーク越しにallreducするという実装のようです.こうすると,GPUからCPUへのメモリコピーを省略できるので高速化が図れるということです.

その他

Google Online Security Blog: Announcing the first SHA1 collision

SHA-1のハッシュ衝突を実用的な時間で達成したとGoogleが発表しています.ハッシュ関数は一方向性関数と呼ばれ,任意の長さのデータを短いビット数へと変換する関数です.重要な特徴として「ハッシュ化された結果から元のデータを推測できない」および「同じハッシュ値を持つことなるデータを発見するのは実用上不可能」という性質が有ります.今回の発表では,SHA-1というハッシュ関数において,同じハッシュ値を持つデータを意図的に生成することができ,結果として同じハッシュ値を持つ異なる2つのPDFファイルを生成することに成功したそうです.

サイボウズ・ラボの光成さんが解説スライドを上げられています.

GoogleのSHA-1のはなし

【広告】