• 検索結果がありません。

クラウドでアクセラレーテッドコンピューティング!GPU と FPGA を駆使してアプリケーションを高速化

N/A
N/A
Protected

Academic year: 2021

シェア "クラウドでアクセラレーテッドコンピューティング!GPU と FPGA を駆使してアプリケーションを高速化"

Copied!
50
0
0

読み込み中.... (全文を見る)

全文

(1)

© 2017, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 2017/06/01 アマゾン ウェブ サービス ジャパン株式会社 ソリューションアーキテクト 松尾康博

クラウドでアクセラレーテッドコンピューティング!

GPUとFPGAを駆使してアプリケーションを高速化

(2)

本セッションの内容

お話すること

• EC2を十分に知っていて基本的なチューニングも実施済だ

がアプリケーションをさらに高速化するために、H/Wアクセラ

レータを活用する方法

お話しないこと

• EC2の基本、EC2チューニングの話は省きます

• 以下のセッションも合わせて聴講ください

• 5/31 18:20 Amazon EC2入門(再演)

• 6/2 14:20 Amazon EC2 Innovation at Scale

(3)

Agenda

• アクセラレーテッドコンピューティングとは

• GPUインスタンス

• FPGAインスタンス

(4)

アプリケーションを高速化すること

• 処理サイクルを高速化

• H/Wのクロック周波数を引き上げる

• アルゴリズムを改善する

• 例:O(n2) → O(log n)

• I/Oを改善する

• ディスクI/O, メモリI/O, キャッシュ

• 並列化可能な処理を

並列化する

(5)

並列化(Parallelism)とは

並列化

はコンピュータにおいて、

同時

複数

の演算

処理を実行することによって処理の

スループット

上げるプログラミング手法である

(6)

並列化とは

並列化可能な処理 並列化不可能 な処理 並列化不可能 な処理 並列化不可能 な処理 並列化不可能 な処理 様々な並列化プログラミング手法が存在 並列化による高速化の限界についてはア ムダールの法則で説明されている

(7)

並列化可能な処理の例

for (i = 0; i++; i < n) { for (j = 0; j++; j < n) { W[i][j] = xxxxxxxx } }

(8)

並列化の実行方法

• 並列クラスタによる並列分散処理

• MPI(Message Passing Interface)

• CPUマルチコア並列

• OpenMP • マルチスレッドプログラミング

• ハードウェアアクセラレーター

• GPU • FPGA • SSE, AVX

(9)

アクセラレーテッドコンピューティングとは?

Parallelism increases throughput

CPU: 高速、汎用、低スループット GPU/FPGA:高スループット、高効率、専用

特定のカテゴリの計算処理で、GPUやFPGAを使った並列化により

(10)

ハードウェアアクセラレータによる高速化

for (i=0;i<N;i++) { } … for (j=0;j<M;j++) { } コンピュートインテンシ ブで並列化可能な計算を ハードウェアアクセラ レーター上で処理 それ以外はCPUで処理 application

(11)

GPU は同じ処理を並列に実行するSIMD (Single Instruction Multiple Data) に向いています。 優れた命令セットに対して固定長ワード(単精度、倍精度、半精度、整数)を扱えます

FPGA はSIMDに加えてMIMD( Multiple Instructions, Multiple Data)も実行可能。 FPGAには規定の命令セットや固定長ワードはありません。 Control ALU ALU Cache DRAM ALU ALU CPU

(one core) FPGA

DRAM DRAM GPU F1の各FPGA は200万以上 のセルを持ち ます P2の各 GPUは 2880コア DRAM

GPUとFPGAの並列処理

B lo ck RA M B lo ck RA M DRAM DRAM

(12)

高速計算のユースケース

Data Light Minimal requirements for high performance storage Data Heavy Benefits from access to high performance storage Fluid dynamics Weather forecasting Materials simulations Crash simulations Risk simulations Molecular modeling Contextual search Logistics simulations Animation and VFX Semiconductor verification Image processing/GIS Genomics Seismic processing Metagenomics Astrophysics Deep learning

Clustered (Tightly Coupled)

(13)

アクセラレータが有効な高速計算のユースケース

Data Light Minimal requirements for high performance storage Data Heavy Benefits from access to high performance storage Fluid dynamics Weather forecasting Materials simulations Crash simulations Risk simulations Molecular modeling Contextual search Logistics simulations Animation and VFX Semiconductor verification Image processing/GIS Genomics Seismic processing Metagenomics Astrophysics Deep learning

Clustered (Tightly Coupled)

(14)

EC2 コンピュートインスタンスタイプ

M4 汎用 コンピュート 最適 ストレージ・I/O 最適 GPU /FPGA アクセラレーテッド メモリ最適 X1 2010 2013 2016 2017 F1 P2 G2 CG1 M3 T2 I3 D2 R4 R3 C5 C4 C3 Announced

(15)

GPUインスタンス と FPGAインスタンス

NVIDIA Tesla GPU Card

P2/G2: GPU-accelerated computing

▪ 各GPUの数千CUDAコアによる高並列計算

▪ 豊富なAPI群 (CUDA, OpenACC, OpenCL)

▪ 多くのISV製品やOSSが対応 Xilinx UltraScale+ FPGA F1: FPGA-accelerated computing ▪ 各FPGAには数百万のロジックセルを搭載 ▪ 規定の命令セットがなく自由に実装可能 ▪ クラウドベースのFPGA開発ツールを用意

(16)

GPU Acceleration

(17)

GPUインスタンスの変遷

P2 G2 Compute Graphics EG 2017 NVIDIA Tesla K80

NVIDIA Kepler Elastic GPU NVIDIA Volta V100 2016 2010 CG1 NVIDIA Tesla M2050 2013

(18)

P2 GPU Instances

• 1インスタンスに最大16個のTesla K80をGPU搭載 • peer-to-peer PCIe GPU インターコネクトを搭載

• Deep Learning, HPCシミュレーション、バッチレンダリング などの様々な用途に利用可能

• 5/26 に東京リージョンで利用可能に! Instance

Size

GPUs GPU Peer to Peer vCPUs Memory (GiB) Network Bandwidth* p2.xlarge 1 - 4 61 High p2.8xlarge 8 Y 32 488 10Gbps p2.16xlarge 16 Y 64 732 20Gbps

*In a placement group

(19)
(20)

Deep Learning on GPU

P2 GPU インスタンスでDL学習と推論において高速な性能を実現 P2インスタンスでのMXNet学習処理: 画像解析アルゴリズムInception v3を MXNetで実装しP2で実行した結果 P2.16xlarge一台で16GPUまで並列に実 行した場合、91%の実行効率で性能向上

(21)

Deep Learning on GPU

P2 GPU インスタンスでDL学習と推論において高速な性能を実現 P2インスタンスでのMXNet学習処理: 画像解析アルゴリズムInception v3を MXNetで実装しP2で実行した結果 P2.16xlargeを16台で構成したクラスター 計256GPUまで並列に実行した場合、85% の実行効率で性能向上

(22)

VOLTA世代GPU搭載インスタンス

GTC2017で発表されたVolta世代のTesla V100を備えたイン

スタンスを提供することを発表

https://aws.amazon.com/jp/blogs/news/aws-and-nvidia-expand-deep-learning-partnership-at-gtc-2017/

(23)

P2 Tips

• 基本的なOSチューニングは必ず実施する

• Placement Group, 拡張ネットワーキングを利用する

• NVIDIA Driver最新版を使う(352.99以降)

• GPUの周波数を最大化固定する

# GPU設定を永続化する $ sudo nvidia-smi -pm 1 # Auto Boostを無効化

$ sudo nvidia-smi --auto-boost-default=0

# GPUクロック最大化

$ sudo nvidia-smi -ac 2505,875

http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/accelerated-computing-instances.html#optimize_gpu

(24)
(25)

安全にコラボレーションを可能に

(26)
(27)

G2インスタンス

• 最大8個の K520 GPUを1台のインスタンスに搭載 • リモートビジュアライゼーション向け • Deep Learning, HPCシミュレーション、バッチレンダリング などのGPGPUも可能 Instance Size

GPUs vCPUs Memory (GiB)

Network Bandwidth*

g2.2xlarge 1 8 15 High

g2.8xlarge 8 32 60 10Gbps

*In a placement group

(28)

EC2 + Elastic GPU =グラフィック性能を柔軟に

t2 c4 m4 r4 : : Small GPU : : Large GPU

(29)

Elastic GPUアーキテクチャ

コンピュート + グラッフィク命令 グラフィック 命令 グフラフィック命令 画像 画像 インスタンス Elastic GPU

(30)

Elastic GPU の重要な機能

お客様の使いたいインスタンスタイプ・サイズに柔軟にグラ

フィック性能を付加

(31)
(32)

アクセラレーテッドコンピューティング用FPGA

並列の処理を処理するためのデバイス Task Task Task Task Task Task Task Task Task Data Data Data Data Task Task Data

(33)

コンピューティングを大幅に加速するXilinx FPGA

強力なパラレルコンピューティング - 250万のプロ グラマブル・ロジックセルと6,840個のプログラマ ブルDSPにより大量の計算を並列、高速に実行 ▪ レイテンシーを最小に - 大容量オンチップメモリ (SRAM 約340Mビット) 搭載により、レイテンシー増大 の要因となる外部メモリアクセスを削減 ▪ フレキシブル -目的に最適な演算ユニットおよび データパスをプログラマブルハードウェアで構成 ▪ スケーラブル - 効率・信頼性の高い高速インター フェースでデバイス間を接続し、スケーラブルな処 理能力の提供を実現 Global Memory UltraRAM UltraRAM

BRAM BRAM BRAM BRAM BRAM

LUTRAM LUTRAM LUTRAM LUTRAM LUTRAM LUTRAM LUTRAM

Any-to-any Kernel A1 Kernel B1 Kernel X1 Kernel A2 Kernel B2 Kernel X2 Kernel An Kernel Bn Kernel Xn Any-to-any ... ... ... ... ... ... A n y -to -any

(34)

F1 FPGA インスタンス

• 最大8個の Xilinx Virtex UltraScale Plus VU9p FPGAとを1台のインスタン スに搭載 in a single instance with four high-speed DDR-4 per FPGA • 最大サイズのインスタンスではFPGA Direct とFPGA Linkで各FPGA間をイ

ンターコネクト

• 金融計算、ゲノム、検索、画像処理をハードウェアアクセラレーション可能

Instance Size FPGAs FPGA Link FPGA Direct vCPUs Memory (GiB) NVMe Instance Storage Network Bandwidth* f1.2xlarge 1 - 8 122 1 x 480 5 Gbps f1.16xlarge 8 Y Y 64 976 4 x 960 20 Gbps

*In a placement group

(35)

AWS FPGA Shell 事前に定義されテストされたセキュアなI/Oコンポーネントを 提供。開発者はロジックの開発に専念可能 B lock RAM B lock RAM DDR-4 DDR-4 DDR-4 DDR-4 FPG A L ink P CIe

抽象化した FPGA I/O

(36)

Amazon Machine Image (AMI) Amazon FPGA Image (AFI) EC2 F1 Instance CPU Application on F1 DDR-4 Attached Memory DDR-4 Attached Memory DDR-4 Attached Memory DDR-4 Attached Memory DDR-4 Attached Memory DDR-4 Attached Memory DDR-4 Attached Memory DDR-4 Attached Memory FPGA Link PCIe DDR Controllers インスタンス起動 と AFIのロード 1台のF1インスタ ンスには複数の AFIを保持可能 数秒でAFIFPGA にロード

F1を使ったFPGAアクセラレーション

F1 FPGA Direct

(37)

F1用アプリケーション開発から利用まで

Amazon FPGA Image (AFI)を作成 C4やM4上でXilinx Vivadoを使っ てFPGAの配置・配線を行う C4やM4上でXilinx Vivadoを 使ってFPGAロジック設計を行う F1インスタンスにAFIを デプロイしアプリケー ションから利用 C4/M4インスタンス

Amazon FPGA Developer AMI AWS FPGA Hardware

Development Kit (HDK)

F1インスタンス Custom AMI AFI SDK App

(38)

高効率化 • アルゴリズムをハードウェアに実装 • ゲートレベルの回路設計 • 命令セットのオーバーヘッド無し 大規模並列 • 超並列回路 • 複数のインスタンス • 迅速にFPGAを再定義可能

FPGA

ヒトゲノムの解析を数時間から数分に短縮 インスタンスとストレージのコストを劇的に削減

事例:ゲノム処理

(39)

CVA計算などを高速化

(40)

F1対応ソフトウェア: RYFT

・F1に対応したElasticsearchエンジン

・CPU(C4.8xlarge)に比べて91倍の性能向上

(41)

NGCODEC: F1によるライブエンコーディング処理

H.265/HEVCビデオエンコーディングをF1のFPGAで

F1インスタンスへの移 植は3週間

(42)

AWS Marketplaceによるパートナー提供

F1インスタンスを起動 Amazon Machine Image (AMI) Amazon FPGA Image (AFI)

お客様へ

サービス提供

AWS Marketplace

(43)

AWSの各種機能を組み合わせて

さらなる並列化と高速化

(44)

AWS CloudFormation

Deep Learning

Framework AMIをもとに

したクラスタをすぐに起動

(45)

CfnCluster

一般的なHPCクラスタ構成を用

意に構成できるツールセット

著名なHPCジョブスケジューラ

も選択可能

Shared File Storage

Cloud-based, scaling HPC cluster on EC2

Cluster head node with job scheduler

(46)

AWS ElasticBeanstalkで推論サービス基盤を

特徴 (http://aws.amazon.com/jp/elasticbeanstalk/) • 速く簡単にアプリケーションをデプロイ可能 • インフラストラクチャの準備&運営からアプリケーションス タックの管理まで自動化 • Auto Scaling によりコストを抑えながらスケーラビリティを 確保

• Java, PHP, Ruby, Python, Node.js, .NET, Docker などに 対応 • P2, F1に対応 価格体系 (http://aws.amazon.com/jp/elasticbeanstalk/pricing/) • 追加料金なし • アプリケーションの保存、実行に必要なAWSリソース (EC2, S3, RDS, DynamoDB など) に対してのみ課金 インフラ構成の構築・アプリデプロイの自動化サービス

(47)

Amazon EC2 Container Service (ECS)

特徴(https://aws.amazon.com/ecs/) • 管理ノード不要の、安定かつ高パフォーマンスな クラスタ管理サービス • Serviceスケジューラで多様なロングランニング プロセスを実行する基盤に • コンテナを必要な台数稼働させる • ELB連携で、デプロイも簡単に • Run Taskでバッチジョブを実行する基盤に • どこかのEC2でコンテナを起動して処理させる 価格体系 (https://aws.amazon.com/ecs/pricing/) • 無料

• 利用するEC2, EBS, ELBなどの料金のみ発生

管理されたEC2クラスタ上に、コンテナを自在に配置できる

Amazon

ECR Amazon ECS

Elastic Load Balancing

(48)

AWS Batchによるバッチ処理管理

特徴 (https://aws.amazon.com/jp/batch/) 多量のバッチジョブ実行をクラスタの管理を行う事なしに 容易に実現できる ジョブとして登録したアプリケーションやコンテナイメージ をスケジューラが実行 利用するインスタンスタイプや数、スポット利用有無など Compute Environmentとして任意に指定可能 価格体系 (https://aws.amazon.com/jp/batch/pricing/) AWS Batch自体の利用料金は無料 EC2インスタンスやストレージなど使用したリソースに対 して課金される フルマネージド型のバッチ処理実行サービス AWS Batchで管理 処理を 依頼 スケジュール 実行

(49)

まとめ

• GPUやFPGAを搭載したアクセラレーテッドインスタンスを利

用して、並列化可能な処理を高速化

• 他サービスと組み合わせ、よりスケーラブルな環境を容易に

構築可能

(50)

参照

関連したドキュメント

An 8.5 mA internal current source flows through R_ILIM, creating a reference voltage, and the voltage drops on R DSON of both high- and low-side MOSFETs are used to compare with

b2) the second Mlower pulse with on−time longer than previous Mupper driver pulse period is placed in case that the ON−time comparator output is high in the end of regular

into burst−mode. In burst−mode, switching operation is halted when V COMP is lower than V BURL and resumed when V COMP is higher than V BURH. By skipping un-needed switching

The Rt pin OCP components are normally designed in such a way that the OCP system shifts and regulates the operating frequency of the LLC converter during overload or secondary

Additional features found in the NCP1562 include line feed-- forward, frequency synchronization up to 1.0 MHz, cycle--by--cycle current limit with leading edge blanking

To synchronize the receiver frequency to a carrier signal, the oscillator frequency could be tuned using the capacitor bank however, the recommended method to implement

11 V M PFC Current Amplifier Output A resistor to ground sets the maximum power level 12 LBO PFC Line Input Voltage Sensing Line feed forward and PFC brown-out3. 13 Fold PFC Fold

When SMOD# is pulled LOW, the low−side MOSFET gate signal is disabled (held LOW), preventing discharge of the output capacitors as the filter inductor current attempts reverse