Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Fixstars Corporation
PPTX, PDF
1,755 views
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
Software
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download to read offline
1
/ 37
2
/ 37
3
/ 37
4
/ 37
5
/ 37
6
/ 37
7
/ 37
8
/ 37
9
/ 37
10
/ 37
11
/ 37
12
/ 37
13
/ 37
14
/ 37
15
/ 37
16
/ 37
17
/ 37
18
/ 37
19
/ 37
20
/ 37
21
/ 37
22
/ 37
23
/ 37
24
/ 37
25
/ 37
26
/ 37
27
/ 37
28
/ 37
29
/ 37
30
/ 37
31
/ 37
32
/ 37
33
/ 37
34
/ 37
35
/ 37
36
/ 37
37
/ 37
More Related Content
PDF
OpenFOAMスレッド並列化のための基礎検討
by
Fixstars Corporation
PPTX
Prelude to Halide
by
Akira Maruoka
PDF
20141224 titech lecture_ishizaki_public
by
Kazuaki Ishizaki
PDF
20151112 kutech lecture_ishizaki_public
by
Kazuaki Ishizaki
PDF
静的型付き言語用Just-In-Timeコンパイラの再利用による、動的型付き言語用コンパイラの実装と最適化
by
Kazuaki Ishizaki
PDF
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
by
Computational Materials Science Initiative
PDF
CMSI計算科学技術特論B(5) アプリケーションの性能最適化の実例2
by
Computational Materials Science Initiative
PDF
C++による数値解析の並列化手法
by
dc1394
OpenFOAMスレッド並列化のための基礎検討
by
Fixstars Corporation
Prelude to Halide
by
Akira Maruoka
20141224 titech lecture_ishizaki_public
by
Kazuaki Ishizaki
20151112 kutech lecture_ishizaki_public
by
Kazuaki Ishizaki
静的型付き言語用Just-In-Timeコンパイラの再利用による、動的型付き言語用コンパイラの実装と最適化
by
Kazuaki Ishizaki
CMSI計算科学技術特論B(4) アプリケーションの性能最適化の実例1
by
Computational Materials Science Initiative
CMSI計算科学技術特論B(5) アプリケーションの性能最適化の実例2
by
Computational Materials Science Initiative
C++による数値解析の並列化手法
by
dc1394
What's hot
PDF
SSII2018TS: 大規模深層学習
by
SSII
PDF
CMSI計算科学技術特論B(2) アプリケーションの性能最適化1
by
Computational Materials Science Initiative
PPTX
Firebird2.5 がやってきた!
by
Tsutomu Hayashi
PPTX
The 53th Computer Vision Study@ kantou by Takamitsu Omasa
by
WEBFARMER. ltd.
PDF
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
by
SSII
PDF
Math works gdlc2019
by
Hirokuni Uchida
PDF
CMSI計算科学技術特論B(1) スーパーコンピュータとアプリケーションの性能
by
Computational Materials Science Initiative
SSII2018TS: 大規模深層学習
by
SSII
CMSI計算科学技術特論B(2) アプリケーションの性能最適化1
by
Computational Materials Science Initiative
Firebird2.5 がやってきた!
by
Tsutomu Hayashi
The 53th Computer Vision Study@ kantou by Takamitsu Omasa
by
WEBFARMER. ltd.
SSII2019OS: 深層学習にかかる時間を短くしてみませんか? ~分散学習の勧め~
by
SSII
Math works gdlc2019
by
Hirokuni Uchida
CMSI計算科学技術特論B(1) スーパーコンピュータとアプリケーションの性能
by
Computational Materials Science Initiative
Similar to DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
PDF
Parallel Computation Foundation's assignment 2
by
T2C_
PDF
第4回 配信講義 計算科学技術特論A (2021)
by
RCCSRENKEI
PDF
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
by
ハイシンク創研 / Laboratory of Hi-Think Corporation
PDF
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
by
Shintaro Fukushima
PDF
Parallel Computation Foundation's assignment 1
by
T2C_
PDF
マルチコアを用いた画像処理
by
Norishige Fukushima
PDF
動的計画法の並列化
by
Proktmr
PPTX
8 並列計算に向けた pcセッティング
by
Takeshi Takaishi
PPTX
GPUによる多倍長整数乗算の高速化手法の提案
by
Koji Kitano
PPTX
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
by
Fixstars Corporation
PDF
新しい並列for構文のご提案
by
yohhoy
PPTX
GPUによる多倍長整数乗算の高速化手法の提案とその評価
by
Koji Kitano
PDF
Hpc148
by
N.Nakasato
PDF
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
by
智啓 出川
PDF
optimal Ate pairing
by
MITSUNARI Shigeo
PDF
第11回 配信講義 計算科学技術特論B(2022)
by
RCCSRENKEI
PDF
第2回 配信講義 計算科学技術特論A (2021)
by
RCCSRENKEI
PDF
第5回 配信講義 計算科学技術特論A(2021)
by
RCCSRENKEI
PDF
研究生のためのC++ no.7
by
Tomohiro Namba
PDF
CMSI計算科学技術特論A(3) OpenMPの基礎
by
Computational Materials Science Initiative
Parallel Computation Foundation's assignment 2
by
T2C_
第4回 配信講義 計算科学技術特論A (2021)
by
RCCSRENKEI
機械学習とこれを支える並列計算 : 並列計算の現状と産業応用について
by
ハイシンク創研 / Laboratory of Hi-Think Corporation
統計解析言語Rにおける大規模データ管理のためのboost.interprocessの活用
by
Shintaro Fukushima
Parallel Computation Foundation's assignment 1
by
T2C_
マルチコアを用いた画像処理
by
Norishige Fukushima
動的計画法の並列化
by
Proktmr
8 並列計算に向けた pcセッティング
by
Takeshi Takaishi
GPUによる多倍長整数乗算の高速化手法の提案
by
Koji Kitano
CPU / GPU高速化セミナー!性能モデルの理論と実践:理論編
by
Fixstars Corporation
新しい並列for構文のご提案
by
yohhoy
GPUによる多倍長整数乗算の高速化手法の提案とその評価
by
Koji Kitano
Hpc148
by
N.Nakasato
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
by
智啓 出川
optimal Ate pairing
by
MITSUNARI Shigeo
第11回 配信講義 計算科学技術特論B(2022)
by
RCCSRENKEI
第2回 配信講義 計算科学技術特論A (2021)
by
RCCSRENKEI
第5回 配信講義 計算科学技術特論A(2021)
by
RCCSRENKEI
研究生のためのC++ no.7
by
Tomohiro Namba
CMSI計算科学技術特論A(3) OpenMPの基礎
by
Computational Materials Science Initiative
More from Fixstars Corporation
PPTX
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
by
Fixstars Corporation
PDF
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
by
Fixstars Corporation
PDF
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
by
Fixstars Corporation
PPTX
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
by
Fixstars Corporation
PDF
株式会社フィックスターズの会社説明資料(抜粋)
by
Fixstars Corporation
PDF
Fpga online seminar by fixstars (1st)
by
Fixstars Corporation
PDF
Jetson活用セミナー ROS2自律走行実現に向けて
by
Fixstars Corporation
PDF
いまさら聞けない!CUDA高速化入門
by
Fixstars Corporation
PDF
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
by
Fixstars Corporation
PDF
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
by
Fixstars Corporation
PDF
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
PDF
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
PDF
株式会社フィックスターズ 会社説明資料(抜粋)
by
Fixstars Corporation
PDF
株式会社フィックスターズ 会社説明資料(抜粋)
by
Fixstars Corporation
PDF
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
by
Fixstars Corporation
PDF
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
by
Fixstars Corporation
PDF
株式会社フィックスターズ 会社説明資料(抜粋)
by
Fixstars Corporation
PPTX
第8回社内プログラミングコンテスト 結果発表会
by
Fixstars Corporation
PPTX
第8回社内プログラミングコンテスト 第1位 taiyo
by
Fixstars Corporation
PPTX
第8回社内プログラミングコンテスト 第2位 fy999
by
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー_生産計画最適化_20220323.pptx
by
Fixstars Corporation
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
by
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー~ 最適化の中身を覗いてみよう~
by
Fixstars Corporation
製造業向け量子コンピュータ時代のDXセミナー ~見える化、分析、予測、その先の最適化へ~
by
Fixstars Corporation
株式会社フィックスターズの会社説明資料(抜粋)
by
Fixstars Corporation
Fpga online seminar by fixstars (1st)
by
Fixstars Corporation
Jetson活用セミナー ROS2自律走行実現に向けて
by
Fixstars Corporation
いまさら聞けない!CUDA高速化入門
by
Fixstars Corporation
量子コンピュータ時代の製造業におけるDXセミナー~生産工程効率化に向けた新たなご提案~
by
Fixstars Corporation
金融業界向けセミナー 量子コンピュータ時代を見据えた組合せ最適化
by
Fixstars Corporation
いまさら聞けないarmを使ったNEONの基礎と活用事例
by
Fixstars Corporation
ARM CPUにおけるSIMDを用いた高速計算入門
by
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
by
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
by
Fixstars Corporation
ソフト高速化の専門家が教える!AI・IoTエッジデバイスの選び方
by
Fixstars Corporation
AIチップ戦国時代における深層学習モデルの推論の最適化と実用的な運用を可能にするソフトウェア技術について
by
Fixstars Corporation
株式会社フィックスターズ 会社説明資料(抜粋)
by
Fixstars Corporation
第8回社内プログラミングコンテスト 結果発表会
by
Fixstars Corporation
第8回社内プログラミングコンテスト 第1位 taiyo
by
Fixstars Corporation
第8回社内プログラミングコンテスト 第2位 fy999
by
Fixstars Corporation
DIC-PCGソルバーのpimpleFoamに対する時間計測と高速化
1.
DIC-PCGソルバーの pimpleFoamに対する 時間計測と高速化 富岡 稔, 澤原
雅隆, 藤原 巧, 𠮷藤 尚生
2.
目次 前回までの復習 – 目標 – 疎行列形式の変更 –
Cuthill-McKee法による並列化の実装 時間計測 さらなる高速化 まとめ・今後の予定 © 2019 Fixstars Corporation, All rights reserved. 1
3.
目次 前回までの復習 – 目標 – 疎行列形式の変更 –
Cuthill-McKee法による並列化の実装 時間計測 さらなる高速化 まとめ・今後の予定 © 2019 Fixstars Corporation, All rights reserved. 2
4.
目標 OpenFOAMのスレッド並列化を行いたい – メニーコア環境だとハイブリッド並列の方が フラットMPIよりも有利 OpenFOAMはそのままではスレッド並列 化が困難であるため、コードに手を加える 必要がある © 2019
Fixstars Corporation, All rights reserved. 3
5.
疎行列形式の変更 並列化のために「lduMatrix形式」から 「CSR形式」に変更 CSR形式を用いることで、疎行列ベクト ル積(SpMV)をスレッド並列化可能に © 2019 Fixstars
Corporation, All rights reserved. 𝑈 𝐿 𝐷 A lduMatrix形式 CSR形式 OpenFOAMスレッド並列化のための基礎検討 (http://proc-cpuinfo.fixstars.com/2018/02/openfoam-thread/) 4
6.
Cuthill-McKee法 CSR形式でもDIC前処理はデータの依存性 により並列化が不可能 Cuthill-McKee(CM)法により依存を排除し、 DIC前処理をスレッド並列化可能に © 2019 Fixstars
Corporation, All rights reserved. Cuthill-McKee法 CuthillMckee法によるOpenFOAMのDIC前処理に関するスレッド並列化 (http://proc-cpuinfo.fixstars.com/2018/06/openfoam/) 5
7.
目次 前回までの復習 – 目標 – 疎行列形式の変更 –
Cuthill-McKee法による並列化の実装 時間計測 さらなる高速化 まとめ・今後の予定 © 2019 Fixstars Corporation, All rights reserved. 6
8.
時間計測 これまではプロファイラが未実装 – 実行時間の比較ができていない
プロファイラを実装し、オープンCAE学会がベンチ マークとして作成したチャネル流問題[1]を使用して 時間を計測 設定 – solver: pimpleFoam – 5ステップだけ計算 環境 – Xeon Phi 7210 (64コア, 256スレッド) OpenFOAM (Foundation版) Git-ID:16b559c1 © 2019 Fixstars Corporation, All rights reserved. [1] OpenFOAM Benchmark Test for Channel Flow (Re_tau=110), https://gitlab.com/OpenCAE/OpenFOAM-BenchmarkTest/tree/master/channelReTau110 7
9.
時間計測(変更なし版) 結果 PCGの実行時間が大部分を占めている – PCGのみに着目すればよい © 2019
Fixstars Corporation, All rights reserved. 8 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 CoreLoop pEqn PCG CoreLoop pEqn PCG DDR4 MCDRAM 実行時間[s] 全体の実行時間 UEqn pEqn PCG 疎行列ベクトル積 DICcalcReciprocalD DIC前処理 WAXPBY normFactor sumMag sumProd
10.
スレッド並列化の前に… スレッド並列化する前に、フラットMPI 並列ではどれくらい高速化できるのか確認 DDR4では32倍, MCDRAMでは84倍 – スレッド並列でもこれくらい速くすることが 目標 9 ©
2019 Fixstars Corporation, All rights reserved. プロセス 数 DDR4 MCDRAM 実行時間[s] 高速化率 実行時間[s] 高速化率 1 208 x1 210 x1 64 9.3 x22 5.5 x38 128 6.5 x32 2.5 x84 256 18 x12 11 x19
11.
CSR化 疎行列形式をlduMatrix形式からCSR形式 に変更した際に、実行時間に変化があるか を確認 © 2019 Fixstars
Corporation, All rights reserved. 𝑈 𝐿 𝐷 A lduMatrix形式 CSR形式 10
12.
時間計測 DIC前処理の実行時間が増加 © 2019 Fixstars
Corporation, All rights reserved. 11 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 lduMatrix形式 CSR形式 lduMatrix形式 CSR形式 DDR4 MCDRAM 実行時間[s] PCG 疎行列ベクトル積 DICcalcReciprocalD DIC前処理 WAXPBY normFactor sumMag sumProd (other)
13.
行列のデータの持ち方を変更 DIC前処理の実行時間が増加してしまった アクセスパターンの違いが原因? – lduMatrix形式では全ての要素が連続アクセス – CSR形式では行列全体を持っているため一部 のアクセスが連続でない CSR形式において上三角部分と下三角部 分も別に保持し、それを使用 ©
2019 Fixstars Corporation, All rights reserved. A L 12
14.
変更結果 lduMatrix形式と同程度になった © 2019 Fixstars
Corporation, All rights reserved. 13 0 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 変更前 変更後 変更前 変更後 lduMatrix形式 CSR形式 lduMatrix形式 CSR形式 DDR4 MCDRAM 実行時間[s] PCG 疎行列ベクトル積 DICcalcReciprocalD DIC前処理 WAXPBY normFactor sumMag sumProd (other)
15.
スレッド並列化 SpMVおよびDIC前処理は並列化可能 – SpMV: CSR化 –
DIC前処理: CSR化 + CM法 OpenMPを用いてスレッド並列化 OpenMPの設定は明記されていない場合は デフォルト(256スレッド) © 2019 Fixstars Corporation, All rights reserved. 14
16.
0 100 200 300 400 500 600 700 800 900 1000 lduMatrix形式 CSR化のみ 並列化
lduMatrix形式 CSR化のみ 並列化 DDR4 MCDRAM 実行時間[s] PCG 疎行列ベクトル積 DICcalcReciprocalD DIC前処理 WAXPBY normFactor sumMag sumProd CuthillMcKee (other) 時間計測 スレッド並列化によるSpMVおよびDIC前 処理の高速化を確認 © 2019 Fixstars Corporation, All rights reserved. 15 DIC 前処理 x3.3 SpMV x11.4 DIC 前処理 x3.4 SpMV x13.5 CM法 CM法
17.
目次 前回までの復習 – 目標 – 疎行列形式の変更 –
Cuthill-McKee法による並列化の実装 時間計測 さらなる高速化 まとめ・今後の予定 © 2019 Fixstars Corporation, All rights reserved. 16
18.
スレッド数の調整 スレッド数を変えたときにSpMVおよび DIC前処理の実行時間が変化するかを 確認 (単位[s]) スレッド数によって、実行時間が大きく 異なる場合があるため、調整が必要 © 2019
Fixstars Corporation, All rights reserved. スレッド数 DDR4 MCDRAM SpMV DIC前処理 SpMV DIC前処理 64 17.6 123.6 13.8 122.7 128 21.0 108.7 17.7 105.7 256 27.8 160.8 23.7 152.1 17
19.
行列の並び替え DIC前処理を行う際に、アクセスする行列 の要素が飛び飛びになっている – キャッシュミスを誘発 並び替えを行って実行時間の変化を確認 © 2019
Fixstars Corporation, All rights reserved. 18
20.
行列の並び替え CSR形式の場合は、行ごとに列番号を変 換しながらコピーを行えばよい 行列をL, D, Uに分けた後で並び替えを 行うと、L,
Uが三角行列にならないことに 注意 © 2019 Fixstars Corporation, All rights reserved. 1 a b A 2 B 3 c d C 4 D 5 3 c d B C 4 D 5 b 1 a A 2 並び替え 19
21.
ベクトルの並び替え 前処理行列を𝑀とおくと、前処理は以下の 式で表される 𝑧 = 𝑀−1 𝑟 並び替えた前処理行列
𝑀′ = 𝑃𝑀𝑃 𝑇 を用い ると、前処理は以下の通りに計算できる 𝑧 = 𝑀−1 𝑟 = 𝑃 𝑇 𝑀′ 𝑃 −1 𝑟 = 𝑃 𝑇 𝑀′−1 𝑃𝑟 1. 𝑟′= 𝑃𝑟 2. 𝑧′ = 𝑀′−1 𝑟′ 3. 𝑧 = 𝑃 𝑇 𝑧′ ベクトルの並び替えの処理も追加で必要 © 2019 Fixstars Corporation, All rights reserved. 20
22.
行列の並び替えの結果 実行時間の変化を確認 (単位[s]) DIC前処理の変更前後の最短の実行時間は それぞれ105秒と39秒 – 約2.7倍の高速化 ©
2019 Fixstars Corporation, All rights reserved. スレッド数 DDR4 MCDRAM DIC前処理 CM法 DIC前処理 CM法 変更前 変更後 変更前 変更後 変更前 変更後 変更前 変更後 64 123.6 61.7 95.5 112.8 122.7 39.4 103.3 119.2 128 108.7 80.5 94.1 110.0 105.7 50.8 99.8 118.2 256 160.8 164.6 97.4 110.5 152.1 91.9 103.1 120.6 21
23.
DDR4 vs. MCDRAM 変更前は実行時間にあまり差がなかったが、 高速化によって差が大きくなった 22 ©
2019 Fixstars Corporation, All rights reserved. 0 20 40 60 80 100 120 140 160 180 DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM 64 threads 128threads 256 threads 64 threads 128 threads 256 threads 変更前 変更後 実行時間[s] DIC前処理
24.
ほかの部分の並列化 ボトルネックだった部分が高速化されたこと によって、ほかの部分が重くなってきた – WAXPBY – リダクション演算(sumMag,
sumProd) これらを並列化する © 2019 Fixstars Corporation, All rights reserved. 23 0 100 200 300 400 500 600 700 800 900 1000 lduMatrix形式 CSR化のみ 並列化 lduMatrix形式 CSR化のみ 並列化 DDR4 MCDRAM 実行時間[s] PCG 疎行列ベクトル積 DICcalcReciprocalD DIC前処理 WAXPBY normFactor sumMag sumProd CuthillMcKee (other)
25.
WAXPBYの並列化 WAXPBY: 𝐰 =
𝑎𝒙 + 𝑏𝒚 という形で表され る計算 ループ間に依存関係がないため並列化可能 © 2019 Fixstars Corporation, All rights reserved. for (int i = 0; i < n; i++) { w[i] = a * x[i] + b * y[i] } #pragma omp parallel for for (int i = 0; i < n; i++) { w[i] = a * x[i] + b * y[i] } 24
26.
WAXPBYの並列化の結果 並列化後の平均実行時間を確認 高速化率 – DDR4: x19 –
MCDRAM: x67 © 2019 Fixstars Corporation, All rights reserved. 25 スレッド数 DDR4 [ms] MCDRAM[ms] 1 25.961 26.139 64 1.339 0.440 128 1.342 0.387 256 1.539 0.493
27.
WAXPBYの並列化の結果 並列化後の平均実行時間を確認 高速化率 – DDR4: x19 –
MCDRAM: x67 © 2019 Fixstars Corporation, All rights reserved. 26 0 5 10 15 20 25 30 DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM 1 thread 64 threads 128 threads 256 threads 平均実行時間[ms] WAXBPY
28.
リダクション演算の並列化 リダクション演算の例として内積がある 内積(𝑠 = 𝒙
𝑇 𝒚)は以下のように計算できる このような計算を並列化するには、リダク ション指示節を用いればよい © 2019 Fixstars Corporation, All rights reserved. double s = 0.0; for (int i = 0; i < n; i++) { s += x[i] * y[i] } double s = 0.0; #pragma omp parallel for reduction(+:s) for (int i = 0; i < n; i++) { s += x[i] * y[i] } 27
29.
リダクション演算の並列化の結果 © 2019 Fixstars
Corporation, All rights reserved. sumMag sumProd DDR4 x31 x25 MCDRAM x47 x56 並列化後の平均実行時間を確認 高速化率 28 スレッド数 sumMag sumProd DDR4[ms] MCDRAM[ms] DDR4[ms] MCDRAM[ms] 1 14.907 14.962 18.402 18.267 64 0.480 0.317 0.727 0.325 128 0.565 0.343 0.780 0.364 256 1.253 1.137 1.380 1.101
30.
リダクション演算の並列化の結果 © 2019 Fixstars
Corporation, All rights reserved. sumMag sumProd DDR4 x31 x25 MCDRAM x47 x56 並列化後の平均実行時間を確認 高速化率 29 0 2 4 6 8 10 12 14 16 18 20 DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM DDR4 MCDRAM 1 thread 64 threads 128 threads 256 threads 平均実行時間[ms] sumMag sumProd
31.
SpMVの高速化率について SpMVが MCDRAM-256スレッド でも13倍 しか速くなっていないのはおかしい 計測範囲内に含まれていた updateMarixIntefaces(...)(未並列)が原因 分けて計測した時のSpMVの高速化率 30 ©
2019 Fixstars Corporation, All rights reserved. スレッド数 DDR4 MCDRAM 64 x24 x34 128 x25 x43 256 x24 x68
32.
現状のスレッド並列化の結果 スレッド並列化の結果 PCG全体の高速化率 – DDR4: x4.3,
MCDRAM: x4.8 © 2019 Fixstars Corporation, All rights reserved. 31 0 100 200 300 400 500 600 700 800 900 1000 変更前 64 threads 128 threads 256 threads 変更前 64 threads 128 threads 256 threads DDR4 MCDRAM 実行時間[s] PCG 疎行列ベクトル積 Cuthill-McKee法 DICcalcReciprocalD DIC前処理 WAXPBY normFactor reorderVector sumMag sumProd updateMatrixInterfaces (other)
33.
現状のスレッド並列化の結果 個別の高速化率 – DIC前処理があまり速くなっていない 並列化前にはなかったCM法が、実行時間 のかなりの割合を占めている © 2019
Fixstars Corporation, All rights reserved. DDR4 MCDRAM SpMV x25 x68 DIC前処理 x6.7 x10 WAXPBY x19 x67 sumMag x31 x45 sumProd x21 x44 (理想高速化率) x32 x84 32
34.
目次 前回までの復習 – 目標 – 疎行列形式の変更 –
Cuthill-McKee法による並列化の実装 時間計測 高速化 まとめ・今後の予定 © 2019 Fixstars Corporation, All rights reserved. 33
35.
まとめ プロファイラを作成し、実行時間を計測した ボトルネックであるPCGのSpMVおよびDIC 前処理をスレッド並列化した。それに加えて 様々な高速化も行った – SpMVは最大68倍の高速化 – DIC前処理は最大10倍の高速化 DIC前処理とCM法がボトルネックとなり、 PCG全体の高速化率は4.8倍にとどまった –
まだまだ高速化が必要 © 2019 Fixstars Corporation, All rights reserved. 34
36.
今後の予定 CM法の実行時間短縮 – 疎行列の構造が変化しない場合は最初の1回の 結果を使い回す – 差分更新が可能かを調査・検討 –
CM法自体の高速化(並列化) © 2019 Fixstars Corporation, All rights reserved. 35
37.
今後の予定 DIC前処理の高速化 – 前処理を行う度にベクトルの並び替えを行っ ており、ここでも時間がかかっている – 代わりにPCGの最初と最後にベクトルの並び 替えを行うような実装に変更する •
𝐴𝒙 = 𝒃 ⇔ 𝐴′ 𝒙′ = 𝒃′ (𝐴′ = 𝑃𝐴𝑃 𝑇, 𝒙′ = 𝑃𝒙, 𝒃′ = 𝑃𝒃) – 高速化率は10倍→16倍に改善されるはず – 理想高速化率は84倍なのでそれでも足りてな い。さらなる高速化方法を調査する © 2019 Fixstars Corporation, All rights reserved. 前処理全体[s] 並び替え[s] 39.7 14.1 (36%) 36
Download