本文ALL.indd

Similar documents
ためのオーバーヘッドが課題となりつつある しかしこのオーバーヘッドに関する数値はほとんど公開されていない この論文ではこの cache coherency の時間を Linux カーネルで提供されている atomic_inc 関数を用いて測定する方法を新たに考案し 実測プログラムを作成した 実測はプ

VXPRO R1400® ご提案資料

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

スライド 1

PowerPoint プレゼンテーション

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc

N08

Microsoft PowerPoint - ARCICD07FukumotoSlides.pptx

(速報) Xeon E 系モデル 新プロセッサ性能について

(ch2 + i)->next = ch1 + r; doit(ch1, ch2); 図 1 ランダムアクセスする C ソース 時間 (elapsed) 32 ビットプログラム (gcc -O2 -m32 でコンパイル ) 6.23 秒 秒 64 ビットプログラム (gcc -O2 -m

12 PowerEdge PowerEdge Xeon E PowerEdge 11 PowerEdge DIMM Xeon E PowerEdge DIMM DIMM 756GB 12 PowerEdge Xeon E5-

Pervasive PSQL v11 のベンチマーク パフォーマンスの結果

はじめに Web アプリケーションの発展と普及の勢いは弱まる兆しがありません 弱まるどころか 加速し続けています これは これまでの ERP CRM Web 2.0 などの Web ベースアプリケーションが提供してきたメリットを考えると 不思議なことではありません Web アプリケーションの爆発的拡

パフォーマンスレポート PRIMERGY TX100 S2

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

DRAM SRAM SDRAM (Synchronous DRAM) DDR SDRAM (Double Data Rate SDRAM) DRAM 4 C Wikipedia 1.8 SRAM DRAM DRAM SRAM DRAM SRAM (256M 1G bit) (32 64M bit)

Insert your Title here

スライド 1

熊本大学学術リポジトリ Kumamoto University Repositor Title GPGPU による高速演算について Author(s) 榎本, 昌一 Citation Issue date Type URL Presentation

Microsoft Word - gori_web原稿:TrusSPSにおけるNAS OSのパフォーマンス評価.docx

Microsoft PowerPoint - OpenMP入門.pptx

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

システム imac 21.5 インチディスプレイ 3.6GHz i5 Dual core / HT 2.8GHz i7 Quad core / HT ATI Radeon 4850 ATI Radeon HD はいいいえいいえはいいいえ ATI はいいいえ

システムソリューションのご紹介

工学院大学建築系学科近藤研究室2000年度卒業論文梗概

JS2-14 マルチコアCPU時代の Javaプログラミング

White Paper 高速部分画像検索キット(FPGA アクセラレーション)

Microsoft PowerPoint - 11Web.pptx

Microsoft Word - SSTC_Intel_Core.doc

Microsoft PowerPoint - ARCEMB08HayashiSlides.ppt [互換モード]

Title Slide with Picture

PowerPoint プレゼンテーション

Windows Server 2016 Hyper-V ストレージQoS機能の強化

ワークステーション推奨スペック Avid Avid Nitris Mojo SDI Fibre 及び Adrenaline MC ソフトウェア 3.5 以降のバージョンが必要です Dual 2.26 GHz Quad Core Intel 構成のに関しては Configuration Guideli

最新Linuxデバイスドライバ開発応用-修正版-PDF.PDF

目次 1 はじめに 登録商標 商標 注意事項 免債事項 SR-IOV の機能概要 性能検証事例 測定環境 測定結果 各方式による共有 NIC 性能比較 ( ポートあ

PowerPoint プレゼンテーション

Title Slide with Picture

第一章 本書の概要 ( ア ) はじめにいわゆるサーバ用プロセッサである Xeon と いわゆるデスクトップ用プロセッサである Core i7 の違いを性能の観点からまとめました 性能とは例えば速さなどの数値のことで 機能 ( できること ) の違いについては立ち入りません Xeon の方がなんとな

Microsoft PowerPoint - ICD2011UenoSlides.pptx

Microsoft Word - 編集用_Ensemble2010.2HL7MessagingThroughput.docx

160311_icm2015-muramatsu-v2.pptx

Microsoft PowerPoint - sales2.ppt

Microsoft PowerPoint - DNS_BoF_SCS_ pptx

ビッグデータやクラウドのシステム基盤向けに処理性能を強化した「BladeSymphony」および「HA8000シリーズ」の新製品を販売開始

サーバに関するヘドニック回帰式(再推計結果)

特集新世代マイクロプロセッサアーキテクチャ ( 後編 ) 3. 実例 3 ユビキタス コンピューティング時代の組み込みマイクロコンピュータ, SuperH と M32R 清水徹 * 1 長谷川淳 * 2 服部俊洋 * 3 近藤弘郁 * 4 ( 株 ) ルネサステクノロジシステムソリューション統括本部

IntelR Compilers Professional Editions

資料3 今後のHPC技術に関する研究開発の方向性について(日立製作所提供資料)

目次 1. はじめに 用語説明 対象アダプタ P HBA/2P HBAで異なる性能 付録 ( 性能測定環境 ) P HBAでの性能測定環境 P HBAでの性能測定環境 本書の

― ANSYS Mechanical ―Distributed ANSYS(領域分割法)ベンチマーク測定結果要約

6 2. AUTOSAR 2.1 AUTOSAR AUTOSAR ECU OSEK/VDX 3) OSEK/VDX OS AUTOSAR AUTOSAR ECU AUTOSAR 1 AUTOSAR BSW (Basic Software) (Runtime Environment) Applicat

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx

PowerPoint プレゼンテーション

マルチコア時代の並列プログラミング

Microsoft Word ●MPI性能検証_志田_ _更新__ doc

PowerPoint プレゼンテーション

[4] ACP (Advanced Communication Primitives) [1] ACP ACP [2] ACP Tofu UDP [3] HPC InfiniBand InfiniBand ACP 2 ACP, 3 InfiniBand ACP 4 5 ACP 2. ACP ACP

DX2000システム構成ガイド

2014年春 Power Systems テクニカル・セミナー POWER8超解説

Agenda GRAPE-MPの紹介と性能評価 GRAPE-MPの概要 OpenCLによる四倍精度演算 (preliminary) 4倍精度演算用SIM 加速ボード 6 processor elem with 128 bit logic Peak: 1.2Gflops

アドバンストサーバ「HA8000シリーズ」において最新テクノロジーを採用しシステム性能を強化

Microsoft PowerPoint - ARC-SWoPP2011OkaSlides.pptx

目次 1. はじめに 用語説明 対象アダプタ P HBA/2P HBA/4P HBA で異なる性能 付録 P HBA での性能測定環境 P HBA での性能測定環境 P

Operating System 仮想記憶

ムーアの法則に関するレポート

2015_collabo_04

Microsoft PowerPoint ppt [互換モード]

Microsoft PowerPoint ppt [互換モード]

cmpsys13w03_cpu_hp.ppt

Windows Server 2008 R2とPRIMERGYによる消費電力削減効果

情報解禁 時 :10 月 19 ( )22:00 以降 株式会社マウスコンピューター News Release 8 コア /16 スレッド駆動のインテル第 9 世代 CPU とハイエンドグラフィックス搭載パソコンをゲーミングパソコンブランド G-Tune から販売 10 月 22 日 ( 月 )10

サーバプラットフォーム「BladeSymphony」、「HA8000シリーズ」の新モデルを販売開始


パフォーマンスレポート PRIMERGY TX100 S3

Scalable Modular Server DX2000 スペック詳細情報 2016 年 12 月 第 2 版 日本電気株式会社

EnSightのご紹介


情報解禁日時 :12 月 20 日 ( 木 )11:00 以降 株式会社マウスコンピューター News Release MousePro 第 9 世代インテル CPU 搭載ビジネス向けデスクトップパソコンを 12 月 20 日 ( 木 ) 販売開始! ビジネス向けデスクトップパソコン MousePr

連載講座 : 高生産並列言語を使いこなす (3) ゲーム木探索問題 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 概要 17 2 ゲーム木探索 必勝 必敗 引き分け 盤面の評価値 αβ 法 指し手の順序付け (mo

GPGPU によるアクセラレーション環境について

概要 プログラミング論 変数のスコープ, 記憶クラス. メモリ動的確保. 変数のスコープ 重要. おそらく簡単. 記憶クラス 自動変数 (auto) と静的変数 (static). スコープほどではないが重要.

Microsoft Word - JP-AppLabs-MySQL_Update.doc

インテル アーキテクチャプラットフォーム リーダーシップ 2000 年 12 月 21 日 第 14 回数値流体力学シンポジウム インテル株式会社 ia 技術本部本部長坂野勝美

HP_PPT_Standard_16x9_JP

Microsoft PowerPoint - CCS学際共同boku-08b.ppt

富士通PCサーバ「PRIMERGY RX2530 M4」における「TeraStation TS5010 / TS3010」シリーズ動作検証報告

スライド 1

連載講座 : 高生産並列言語を使いこなす (5) 分子動力学シミュレーション 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 問題の定義 17 2 逐次プログラム 分子 ( 粒子 ) セル 系の状態 ステップ 18

NEC RAID Controller Overview

PowerPoint プレゼンテーション

kantan_C_1_iro3.indd

Microsoft PowerPoint - ICD-ARCパネル

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2010-ARC-187 No.3 Vol.2010-EMB-15 No /1/28 マルチコアプロセッサのコアごとのアクセス局所性を利用した共有キャッシュの消費電力削減 1 1 L2 キャッシュに共有キャ

修士論文

Linuxのベンチマーク評価 とボトルネック解析

スライド 1

1. GPU コンピューティング GPU コンピューティング GPUによる 汎用コンピューティング GPU = Graphics Processing Unit CUDA Compute Unified Device Architecture NVIDIA の GPU コンピューティング環境 Lin

技術が生み出す魔法!最新ハードウェアとチューニングで激速データベース

Transcription:

Intel Xeon プロセッサにおける Cache Coherency 時間の性能測定方法河辺峻田口成美古谷英祐 Intel Xeon プロセッサにおける Cache Coherency 時間の性能測定方法 Performance Measurement Method of Cache Coherency Effects on an Intel Xeon Processor System 河辺峻田口成美古谷英祐 KAWABE Shun, TAGUCHI Akiyoshi, FURUYA Eisuke 要旨プロセッサは現在マルチコア化による高速化が進んでいる 並列処理が可能なプログラムやスループットを主とする多重プログラムにとっては高速化が期待できる しかしキャッシュ構成は複雑化しており それぞれのコアが所有するキャッシュは,,L3 に階層化されている 最新の Intel プロセッサチップでは / キャッシュはコア間では共有せず L3 キャッシュは同一プロセッサチップのコア間で共有している また複数のプロセッサチップを搭載するサーバでは L3 キャッシュ間で情報の交信を行っている このような構成において キャッシュのコヒーレンシ ( 一貫性 ) を保つための時間を atomic_inc 関数を用いて測定する方法を考案し 実測プログラムを作成した その結果 Intel Xeon プロセッサ (2.4GHz) システムではキャッシュのコヒーレンシ ( 一貫性 ) を保つための時間は 同一チップ内では平均 27.40ns に対して 同一ボード内 ( 異なるチップ間 ) では平均 113.71ns にもなることが分かった 1. はじめに現在 プロセッサのシングルコアの周波数が消費電力や発熱問題により頭打ちになり マルチコアが普及しつつある そしてこれからはさらにプロセッサのコア数が増える方向へと進んでいくと思われる 本研究ではキャッシュのコヒーレンシ ( 一貫性 ) を保つための時間を Linux の C 言語の atomic_inc 関数を用いて測定する方法を考案し 実測プログラムを作成して測定を行い結果を分析する 2. プロセッサの性能測定方法と結果の考察 2.1 評価に用いたプロセッサ図 1に今回の評価で用いたプロセッサの構成図を示す Intel E5620(Nehalem Westmere-EP) プロセッサは図 1に示すように 1つのプロセッサに 4 つのコアがありコアごとに 32KB のデータおよび命令キャッシュと 256KB の キャッシュ 1

明星大学研究紀要 情報学部 第 22 号 2014 年 を持ち 各コアが共有する 12MB の L3 キャッシュを持っている 周波数は 2.40GHz で TPD は 80W である このプロセッサチップが1つのボード上に2つ搭載されており QPI(Quick Path Interconnect) でプロセッサチップ間の情報の交信を行っている また それぞれのコアが HT(Hyper Threading) 機能を持っている このためプログラムからは論理的には 16 のプロセッサがあるように見える 今回のプログラムでは affinity 機能を用いて使用するコアを指定した また OS は Linux の Fedora14(64b) を使用した Intel i7/xeon Processor Chip Intel i7/xeon Processor Chip Core0 Core1 Core2 Core3 Core4 Core5 Core6 Core7 Shared Level 3 Cache Shared Level 3 Cache Integrated Quick Path Quick Path Integrated DDR3 DDR 図 1 評価に用いたプロセッサ構成図 2.2 性能測定方法 2.2.1 Linux カーネルの atomic_inc 動作 Linux カーネルには atomic 動作というのがある マルチスレッドで動作する場合に x86 アーキテクチャでは共通にアクセスする変数にハード的に lock をかけて更新を行う atomic_inc 関数は指定した変数に lock をかけて変数の値を+1する機能である #define LOCK "lock ; " typedef struct {volatile int counter; } atomic_t; atomic_t abc; 2 static inline void atomic_inc(atomic_t *v) { asm volatile ( LOCK "incl %0" :"=m" (v->counter)

Intel Xeon プロセッサにおける Cache Coherency 時間の性能測定方法河辺峻田口成美古谷英祐 :"m" (v->counter)); } としておいて atomic_inc(&abc.counter); と書くと変数 abc.counter の値が+1される 各々のコアでメモリ上の共通変数に atomic_inc を動作させると 各コアで交互に排他的にメモリ上の共通変数が+1される さらにその時 各コアにあるキャッシュのコヒーレンシ ( 一貫性 ) を保つための論理回路が必ず動作する したがってマルチスレッドプログラミングを用いて 各コアで atomic_inc を交互に動作させると キャッシュのコヒーレンシ ( 一貫性 ) の時間が測定可能になる 2.2.2 atomic_inc の性能測定方法とプログラム図 1 に性能測定構成図を示す プロセッサチップが2ケあり 1つのチップに4コア (Hyper Thread 機能を使用すると8スレッド並列可 ) あり 2チップで最大 8コア (HT 機能で 16 スレッド並列可 ) である affinity 機能を使用したコアの指定 ( コア 0 を指定した例 ) cpu_set_t mask0; CPU_ZERO(&mask0); CPU_SET(0,&mask0); rv=sched_setaffinity(0,sizeof(mask0),&mask0) マルチスレッドの各スレッドの測定部分のプログラム gettimeofday 関数を持ちいて 1000 万回 (4コアの場合で約数百 ms かかる ) のループを測定する gettimeofday(&st,null); for(a=0;a<tr;a++) { atomic_inc(&abc.counter); } gettimeofday(&et,null); (1) 同一チップ内の atomic_inc の動作 図 2において core0() から atomic_inc を行う まず にあるデータ a を まで持ってくる この時 L3 の対応エリアも a の値になる Intel i7/xeon プロセッサの cache 制御は writeback 方式であるので atomic_inc により値が更新されるのはこの場合 のみで の値が に更新される 次に core1(c1) から atomic_inc を行う この場合 真の値は の にあるので まず の の内容の値 を の および L3 に書き込む 3

明星大学研究紀要 情報学部 第 22 号 2014 年 この動作の後 C1 は L3 から の値を まで持って来て値を に更新する 同じようにして次は core0() から atomic_inc を行う この場合 真の値は C1 の にあるので まず C1 の の内容の値 を C1 の および L3 に書き込む この動作の後 は L3 から の値を まで持って来て値を a+3 に更新する C1 C1 C1 / a+3 L3 a a a a 図 2 同一チップ内の atomic_inc の動作 (2) 同一ボード内 ( 異なるチップ間 ) の atomic_inc の動作 図 3において core0() から atomic_inc を行う まず にあるデータ a を まで持ってくる この時 L3 の対応エリアも a の値になる Intel i7/xeon プロセッサの cache 制御は writeback 方式であるので atomic_inc により値が更新されるのはこの場合も のみで の値が に更新される 次に core4(c4) から atomic_inc を行う この場合 真の値は の にあるので まず の の内容の値 を の および の L3 に書き込む この動作の後 C4 は の L3 から の値を QPI 経由で C4 の L3 から まで持って来て値を に更新する 同じようにして次は core0() から atomic_inc を行う この場合 真の値は C4 の にあるので まず C4 の の内容の値 を C4 の および L3 に書き込む この動作の後 は C4 の L3 から の値を QPI 経由で の L3 から まで持って来て値を a+3 に更新する C4 C4 C4 / a+3 L3 a QPI QPI QPI a a a 4 図 3 同一ボード内 ( 異なるチップ間 ) の atomic_inc の動作

Intel Xeon プロセッサにおける Cache Coherency 時間の性能測定方法河辺峻田口成美古谷英祐 2.2 性能実測結果と考察 性能測定は次の4つのケースに分けて行った (1) atomic_inc の単体性能 [ 測定 1] (2) キャッシュコヒーレンシ動作を伴わない atomic_inc の性能 [ 測定 2] (3) 同一チップ内の atomic_inc の性能 [ 測定 3] (4) 同一ボード内 ( 異なるチップ間 ) の atomic_inc の性能 [ 測定 4] 測定結果 測定 1:core0 にて atomic_inc を実行させて性能を測定する 結果は 10.52ns となった ちなみにハード的に lock をかけずに実行すると 結果は 3.97ns であった 測定 2:core0 の同一コア内で HT(Hyper Threading) 機能を利用して 2つの atomic_inc を実行させて性能を測定する この場合キャッシュコヒーレンシ動作は伴わない 結果は平均して 11.13ns となった 測定 3: 同一チップ内の atomic_inc の動作として [,C1] [,C2] [,C3] のペアで2 つの atomic_inc を実行させて性能を測定する 結果は平均して 38.53ns となった 測定 2で得られた値 11.13ns をこれから引いた値 38.53-11.13=27.40ns が同一チップ内の cache coherency 時間と見なすことができる 測定 4: 同一ボード内 ( 異なるチップ間 ) の atomic_inc の動作として [,C4] [,C5] [,C6] [,C7] のペアで2つの atomic_inc を実行させて性能を測定する 結果は平均して 124.84ns となった 測定 2で得られた値 11.13ns をこれから引いた値 124.84-11.13=113.71ns が同一ボード内 ( 異なるチップ間 ) の cache coherency 時間と見なすことができる 考察 CPI(Clock cycle Per Instruction) に与える影響 cache coherency 時間は 同一チップ内では 27.40ns(65.76cyc) 異なるチップ間では 113.71ns(272.90cyc) となる 1 命令において基本 CPI を 2.0 としたとき cache coherency の命令あたりの発生頻度を横軸にとり 縦軸に CPI をとったグラフを図 4に示す これから分かるように 同一チップ内で発生する cache coherency が CPI に与える影響は比較的軽微である CPI 10 8 6 4 2 0 異なるチップ間同一チップ内 % 0 0.5 1.0 1.5 2.0 cache coherency 発生頻度図 4 CPI に与える影響 5

明星大学研究紀要 情報学部 第 22 号 2014 年 しかし異なるチップ間で発生する cache Coherency が CPI に与える影響は非常に大きい これは異なるチップ間で発生する cache Coherency 時間が 同一チップ内で発生する cache Coherency 時間の 4.15 倍にもなっていることによる 3. 結論マルチコアプロセッサのキャッシュ構造においては キャッシュの一貫性を保つ処理の為 性能が大幅に低下する場合がある 今回 Linux の C 言語の atomic_inc 関数を用いてこのキャッシュのコヒーレンシ ( 一貫性 ) を保つための時間を測定する方法を考案した Intel Xeon プロセッサ E5620(Nehalem Westmere-EP) の実測結果では cache coherency 時間は 同一チップ内では 27.40ns(65.76cyc) 異なるチップ間では 113.71ns(272.90cyc) となった CPI(Clock cycle Per Instruction) に与える影響では 同一チップ内で発生する cache coherency が CPI に与える影響は比較的軽微であるものの 異なるチップ間で発生する cache Coherency 時間は同一チップ内で発生する cache Coherency 時間の 4.15 倍にもなっているため CPI に与える影響は非常に大きいことが分かった このためマルチスレッドを用いたアプリケーションプログラムを作成する場合 このような性能低下があることを十分考慮してプログラミングを行わなければならない 4. 今後の課題今回は1 枚のボードに2つのプロセッサチップ (8コア) が搭載されたケースについて測定した 今後のプロセッサの進化は 複数のプロセッサチップに搭載された複数のコアがメモリを共有する方向で進化していく可能性が高い 例えば1つのプロセッサチップ (8コア) が搭載されたケースで64コアの大規模な構成であれば 4 個のボードにわたってキャッシュの一貫性を保つ処理が行われる このケースによる cache Coherency 時間はさらに大きくなるのではないかと思われる 今後も引き続きこのようなプロセッサ特性を評価していきたいと思う 参考文献 [1] Daniel Molka, et.al, Performance and Cache Coherency Effects on an Nehalem Multiprocessor System, 18 th ICPACT, pp.261-270, 2009 [2] 河辺峻 :8 コアプロセッサの性能評価分析, 明星大学情報学部紀要,20,pp.15-20(2012) 6