Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ppOpen-HPCコードを自動チューニングする言語ppOpen-ATの現状と新展開

935 views

Published on

本発表では、ppOpen-HPCプロジェクトによる実シミュレーションコードを自動チューニング(AT)する言語ppOpen-ATの現状報告を行う。今後の展開として、多階層なメモリなどを想定し、多階層にATを実施する場合の例を、有限差分法(FDM)によるアプリケーションppOpen-APPL/FDMを題材にしたAT適用例を紹介する。また、Xeon Phiでのチューニング結果も紹介する。

Published in: Technology
  • I ordered in ⇒ www.HelpWriting.net ⇐ I know exactly that I can trust them.They can help you with any kind of assignment - from high school essay to PhD dissertation. On the left you can see a detailed list of our services. They can write from scratch according to your instructions.Edit and proofread your paper.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

ppOpen-HPCコードを自動チューニングする言語ppOpen-ATの現状と新展開

  1. 1. ppOpen‐HPCコードを 自動チューニングする言語 ppOpen‐ATの現状と新展開 片桐 孝洋 i),ii) 1 i) 東京大学情報基盤センター ii)JST, CREST 第7回 自動チューニング技術の現状と応用に関するシンポジウム(ATTA2015) 日時:2015年12月25日(金)10:00~18:00、場所:東京大学山上会館 15:00~15:30  共同研究者:松本 正晴 i),ii)、大島 聡史 i),ii)
  2. 2. 発表の流れ 1. 背景 2. ppOpen‐HPCプロジェクトと AT言語ppOpen‐AT 3. Seism3D(ppOpen‐APPL/FDM)の コードチューニング手法 4. 階層型ATへの展開 5. 性能評価 6. おわりに
  3. 3. 発表の流れ 1. 背景 2. ppOpen‐HPCプロジェクトと AT言語ppOpen‐AT 3. Seism3D(ppOpen‐APPL/FDM)の コードチューニング手法 4. 階層型ATへの展開 5. 性能評価 6. おわりに
  4. 4. 「ポストムーアに向けた計算機 科学・計算科学の新展開」シンポジウム http://www.cspp.cc.u‐tokyo.ac.jp/p‐moore‐201512/
  5. 5. Source:  http://www.engadget.c om/2011/12/06/the‐ big‐memory‐cube‐ gamble‐ibm‐and‐ micron‐stack‐their‐ chips/ Source: http://www.theregister.c o.uk/2015/07/28/intel_ micron_3d_xpoint/  2020年頃のエクサスケールスパコンを境に ムーアの法則での速度向上が終焉 – “One‐time Speedup”のメニーコア化、 配線微細化、による低電力化の終わり →ノード内の計算性能(FLOPS)は増加しなくなる  チップ内のメモリ量やメモリ帯域は 「3次元積層技術」により向上  3次元積層メモリ: – Z方向(積層方向)のバンド幅は増加、 アクセスレイテンシは維持(→高性能化) – X‐Y方向は、低アクセスレイテンシ  ノード間は、アクセスレイテンシは(相対的に) 悪化、だが光配線技術などでバンド幅は増加 できる  以上は2020年後半(→ポストムーア) HMC Intel 3D Xpoint ポストムーア時代のAT!?
  6. 6.  メモリバンド幅増加  局所メモリ(キャッシュ量) 増加  メモリアクセス レイテンシ非均一 を考慮したアルゴリズム再構築 AT技術の課題 階層型AT方式 通信削減アルゴリズム 高バンド幅活用の <新アルゴリズム探求>  と <自動切替> (アルゴリズム選択)  古典アルゴリズム復活?  キャッシュブロック化なし アルゴリズム  陽解法から陰解法へ  アウト・オブ・コア(OoC) アルゴリズム(主メモリ外) 演算量(FLOPS)増加ではなく <データ移動量増加> の アルゴリズム変更 が求められる! ポストムーア時代のAT!?
  7. 7. チューニング知識 データベース 1. 仕様策定フェーズ 2. プログラミング フェーズ !ABCLib$ install unroll (i,k) region start !ABCLib$ name MyMatMul !ABCLib$ varied (i,k) from 1 to 8 do i=1, n do j=1, n do k=1, n C( i, j ) = C( i, j ) + A( i, k ) * B( k, j ) enddo enddo enddo !ABCLib$ install unroll (i,k) region end do i=1, n do j=1, n do k=1, n C( i, j ) = C( i, j ) + A( i, k ) * B( k, j ) enddo enddo enddo do i=1, n, 2 do j=1, n do k=1, n C( i, j ) = C( i, j ) + A( i, k ) * B( k, j ) C( i+1, j ) = C( i+1, j ) + A( i+1, k ) * B( k, j ) enddo enddo enddo do i=1, n, 2 do j=1, n Ctmp1 = C( i, j ) Ctmp2 = C( i+1, j ) do k=1, n Btmp = B( k, j ) Ctmp1 = Ctmp1 + A( i, k ) * Btmp Ctmp2 = Ctmp2 + A( i+1, k ) * Btmp enddo C( i, j ) = Ctmp1 C( i+1, j ) = Ctmp2 enddo enddo do i=1, n, 2 do j=1, n Ctmp1 = C( i, j ) Ctmp2 = C( i+1, j ) do k=1, n, 2 Btmp1 = B( k, j ) Btmp2 = B( k+1, j ) Ctmp1 = Ctmp1 + A( i, k ) * Btmp1 + A( i, k+1) * Btmp2 Ctmp2 = Ctmp2 + A( i+1, k ) * Btmp1 + A( i+1, k+1) * Btmp2 enddo C( i, j )=Ctmp1 C( i+1, j )=Ctmp2 enddo enddo 3. 最適化フェーズ コード 生成 4. チューニングに 関する知識探索と データベース化 のフェーズ 結果の解析 対象計算期 コンパイルと実行 コア数の増大、プ ログラミングモデ ルおよびコード最 適化の複雑化 (多様な計算機 アーキテクチャ) HPCソフトウェア開発の流れ図
  8. 8. 発表の流れ 1. 背景 2. ppOpen‐HPCプロジェクトと AT言語ppOpen‐AT 3. Seism3D(ppOpen‐APPL/FDM)の コードチューニング手法 4. 階層型ATへの展開 5. 性能評価 6. おわりに
  9. 9. ppOpen‐HPC プロジェクト • HPCミドルウェアとAT技術の開発 – JST, CRESTによる支援(2011年度~ 2015年度) – 代表者: 中島研吾 教授 (東大) • ppOpen‐HPC 1) – ポストペタpost‐peta (pp)スケール の並列計算機向けの オープンソースで信頼できるシミュレーション基盤を開発 – 科学技術計算のための 5種類の離散化方式を基にした コードのライブラリから構成される • ppOpen‐AT 6),7),8)  – ppOpen‐HPC コードのための自動チューニング言語 – 事前プロジェクト:ABCLibScript プロジェクト 4)の知見を引き継ぐ – ATのためのディレクティブを基にしたAT言語 9
  10. 10. ppOpen‐HPC の ソフトウェアアーキテクチャ 10 FVM DEMFDMFEM メニーコア CPU GPU マルチコア CPU MG COMM 自動チューニング機構 最適化候補のコード生成 最適候補の探索 最適化の自動実行 ppOpen‐APPL ppOpen‐MATH BEM ppOpen‐AT ユーザープログラム GRAPH VIS MP STATIC DYNAMIC ppOpen‐SYS FT メモリ アクセス 最適化
  11. 11. ppOpen‐AT System  (Based on FIBER 2),3),4),5) )  ppOpen‐APPL /* ppOpen‐AT ディレクティブ ユーザ 知識ライブラリ 開発者 ① リリース 前時 Candidate 1 Candidate 2 Candidate 3 候補 nppOpen‐AT オートチューナー ppOpen‐APPL / * 自動コード 生成 ② :対象計算期 実行時間④ ライブラリ ユーザ ③ ライブラリコール 選択 ⑤ ⑥ 自動 チューニング された カーネル の実行 実 行 時 ATの恩恵 をうける ユーザ
  12. 12. ppOpen‐APPL/FDMへの適用シナリオ 12 AT無しで、最適化された カーネルの実行 ライブラリ 利用者 ATパラメタの指定と ライブラリの実行 (OAT_AT_EXEC=1) ■オートチューナの実行 固定ループ長での実行 (行列サイズ、MPIプロセス数、 OpenMPスレッド数の固定による) 対象カーネルの実行時間の計測 最適パラメタ情報の収納 ATパラメタの指定と ライブラリの実行 (OAT_AT_EXEC=0) 最速カーネル情報の 収納 ATなしで最速カーネルを使う (行列サイズ、MPIプロセス数、 OpenMPスレッド数を変えない限り有効) 行列サイズ、 MPIプロセス数、 OpenMPスレッド数の指定 [FIBER方式、2003] 実行起動前時AT
  13. 13. 発表の流れ 1. 背景 2. ppOpen‐HPCプロジェクトと AT言語ppOpen‐AT 3. Seism3D(ppOpen‐APPL/FDM)の コードチューニング手法 4. 階層型ATへの展開 5. 性能評価 6. おわりに
  14. 14. Target Application • Seism3D:  Simulation for seismic wave analysis. • Developed by Professor T.Furumura at the University of Tokyo. –The code is re‐constructed as  ppOpen‐APPL/FDM. • Finite Differential Method (FDM)  • 3D simulation –3D arrays are allocated. • Data type: Single Precision (real*4) 14
  15. 15. Flow Diagram of  ppOpen‐APPL/FDM 15 ),,,( }],,,) 2 1 ({},,) 2 1 ({[ 1 ),,( 2/ 1 zyxqp zyxmxzyxmxc x zyx dx d pqpq M m m pq         Space difference by FDM. ),,(, 12 1 2 1 zyxptf zyx uu n p n zp n yp n xpn p n p                        Explicit time expansion by central  difference. Initialization Velocity Derivative (def_vel) Velocity Update (update_vel) Stress Derivative (def_stress) Stress Update (update_stress) Stop Iteration? NO YES End Velocity PML condition (update_vel_sponge) Velocity Passing (MPI) (passing_vel) Stress PML condition (update_stress_sponge) Stress Passing (MPI) (passing_stress)
  16. 16. Original Implementation (For Vector Machines) call ppohFDM_pdiffx3_m4_OAT( VX,DXVX, NXP,NYP,NZP,NXP0,NXP1,NYP0,…) call ppohFDM_pdiffy3_p4_OAT( VX,DYVX, NXP,NYP,NZP,NXP0,NXP1,NYP0,…) call ppohFDM_pdiffz3_p4_OAT( VX,DZVX, NXP,NYP,NZP,NXP0,NXP1,NYP0,…) call ppohFDM_pdiffy3_m4_OAT( VY,DYVY, NXP,NYP,NZP,NXP0,NXP1,NYP0,… ) call ppohFDM_pdiffx3_p4_OAT( VY,DXVY, NXP,NYP,NZP,NXP0,NXP1,NYP0,… ) call ppohFDM_pdiffz3_p4_OAT( VY,DZVY, NXP,NYP,NZP,NXP0,NXP1,NYP0,…) call ppohFDM_pdiffx3_p4_OAT( VZ,DXVZ, NXP,NYP,NZP,NXP0,NXP1,NYP0,…) call ppohFDM_pdiffy3_p4_OAT( VZ,DYVZ, NXP,NYP,NZP,NXP0,NXP1,NYP0,… ) call ppohFDM_pdiffz3_m4_OAT( VZ,DZVZ, NXP,NYP,NZP,NXP0,NXP1,NYP0,…) if( is_fs .or. is_nearfs ) then call ppohFDM_bc_vel_deriv( KFSZ,NIFS,NJFS,IFSX,IFSY,IFSZ,JFSX,JFSY,JFSZ ) end if call ppohFDM_update_stress(1, NXP, 1, NYP, 1, NZP) Fourth‐order accurate central‐difference scheme  for velocity. (def_stress) Process of model boundary.  Explicit time expansion by leap‐frog scheme. (update_stress)
  17. 17. Original Implementation (For Vector Machines) subroutine OAT_InstallppohFDMupdate_stress(..) !$omp parallel do private(i,j,k,RL1,RM1,RM2,RLRM2,DXVX1,DYVY1,DZVZ1,…) do k = NZ00, NZ01 do j = NY00, NY01 do i = NX00, NX01 RL1   = LAM (I,J,K); RM1   = RIG (I,J,K);  RM2   = RM1 + RM1; RLRM2 = RL1+RM2 DXVX1 = DXVX(I,J,K);  DYVY1 = DYVY(I,J,K);  DZVZ1 = DZVZ(I,J,K) D3V3  = DXVX1 + DYVY1 + DZVZ1 SXX (I,J,K) = SXX (I,J,K) + (RLRM2*(D3V3)‐RM2*(DZVZ1+DYVY1) ) * DT SYY (I,J,K) = SYY (I,J,K)  + (RLRM2*(D3V3)‐RM2*(DXVX1+DZVZ1) ) * DT SZZ (I,J,K) = SZZ (I,J,K)  + (RLRM2*(D3V3)‐RM2*(DXVX1+DYVY1) ) * DT DXVYDYVX1 = DXVY(I,J,K)+DYVX(I,J,K);  DXVZDZVX1 = DXVZ(I,J,K)+DZVX(I,J,K) DYVZDZVY1 = DYVZ(I,J,K)+DZVY(I,J,K) SXY (I,J,K) = SXY (I,J,K) + RM1 * DXVYDYVX1 * DT SXZ (I,J,K) = SXZ (I,J,K) + RM1 * DXVZDZVX1 * DT SYZ (I,J,K) = SYZ (I,J,K) + RM1 * DYVZDZVY1 * DT end do end do end do retuen end Explicit time  expansion by  leap‐frog scheme.  (update_stress) Input and output for arrays Input and output for arrays  in each call ‐> Increase of  B/F ratio: ~1.7
  18. 18. 発表の流れ 1. 背景 2. ppOpen‐HPCプロジェクトと AT言語ppOpen‐AT 3. Seism3D(ppOpen‐APPL/FDM)の コードチューニング手法 4. 階層型ATへの展開 5. 性能評価 6. おわりに
  19. 19. 階層型AT処理の例(2階層) program main …. <AT対象のループ> do i=1, N … call LowerRoutine( ….) … enddo subroutine  LowerRoutine(….) …. <AT記述の処理> …. return end 上位のAT指定 下位のAT指定
  20. 20. Select節によるコード選択と階層的なAT指定 Program main …. !OAT$ install select region start !OAT$ name ppohFDMupdate_vel_select !OAT$ select sub region start call ppohFDM_pdiffx3_p4( SXX,DXSXX,NXP,NYP,NZP,….) call ppohFDM_pdiffy3_p4( SYY,DYSYY, NXP,NYP,NZP,…..) … if( is_fs .or. is_nearfs ) then call ppohFDM_bc_stress_deriv( KFSZ,NIFS,NJFS,IFSX,….) end if call ppohFDM_update_vel    ( 1, NXP, 1, NYP, 1, NZP ) !OAT$ select sub region end !OAT$ select sub region start Call ppohFDM_update_vel_Intel  ( 1, NXP, 1, NYP, 1, NZP ) !OAT$ select sub region end !OAT$ install select region end 上位のAT指定 Select節で コード選択が 記述可能 subroutine ppohFDM_update_vel(….) …. !OAT$ install LoopFusion region start !OAT$ name ppohFDMupdate_vel !OAT$ debug (pp) !$omp parallel do private(i,j,k,ROX,ROY,ROZ) do k = NZ00, NZ01 do j = NY00, NY01 do i = NX00, NX01 ….. …. 下位のAT指定 subroutine ppohFDM_pdiffx3_p4(….) …. !OAT$ install LoopFusion region start ….
  21. 21. Call tree graph by the AT Start Stress Derivative (def_stress) Stress Update (update_stress) Stop iteration? NO YES End Velocity PML condition (update_vel_sponge) Velocity Passing (MPI) (passing_vel) Stress PML condition (update_stress_sponge) Stress Passing (MPI) (passing_stress) Velocity Derivative (def_vel) Velocity Update (update_vel) Main Program Velocity Update (update_vel_Scalar) Stress Update (update_stress_Scalar) Selection Selection update_vel_select update_stress_select update_vel_select update_stress_select :auto‐generated codes Velocity Update (update_vel_IF_free) Selection Stress Update (update_stress_IF_free) Selection CandidateCandidateCandidateCandidate CandidateCandidateCandidateCandidate CandidateCandidateCandidateCandidate CandidateCandidateCandidateCandidate CandidateCandidateCandidateCandidate CandidateCandidateCandidateCandidate CandidateCandidateCandidateCandidate
  22. 22. Execution Order of the AT Velocity PML condition (update_vel_sponge) Velocity Passing (MPI) (passing_vel) Stress PML condition (update_stress_sponge) Stress Passing (MPI) (passing_stress) update_vel_select update_stress_select Stress Derivative  (def_stress) Stress Update  (update_stress) Velocity Derivative (def_vel) Velocity Update (update_vel) Velocity Update  (update_vel_Scalar) Stress Update (update_stress_Scalar) Def_* AT Candidates Update_vel AT Candidates Update_stress AT Candidates Update_vel_sponge AT Candidates Update_stress_sponge AT Candidates Passing_vel AT Candidates Passing_stress AT Candidates ① ② ② ③ ③ ④ ④ ④ ④ Velocity Update  (update_vel_IF_free) Stress Update (update_stress_IF_free) We can specify the  order via a directive of  ppOpen‐AT. (an extended function)
  23. 23. The Number of AT Candidates (ppOpen‐APPL/FDM) 23 Kernel Names AT Objects The Number of Candidates 1. update_stress ・Loop Collapses and Splits :8 Kinds ・Code Selections : 2 Kinds 10 2. update_vel ・Loop Collapses, Splits, and re‐ ordering of statements: :6 Kinds ・Code Selections: 2 Kinds 8 3. update_stress_sponge ・Loop Collapses:3 Kinds 3 4. update_vel_sponge ・Loop Collapses:3 Kinds 3 5. ppohFDM_pdiffx3_p4 Kernel Names:def_update、def_vel ・Loop Collapses:3 Kinds 3 6. ppohFDM_pdiffx3_m4 3 7. ppohFDM_pdiffy3_p4 3 8. ppohFDM_pdiffy3_m4 3 9. ppohFDM_pdiffz3_p4 3 10.ppohFDM_pdiffz3_m4 3 11. ppohFDM_ps_pack Data packing and unpacking ・Loop Collapses: 3 Kinds 3 12. ppohFDM_ps_unpack 3 13. ppohFDM_pv_pack 3 14. ppohFDM_pv_unpack 3  Total:54 Kinds  Hybrid  MPI/OpenMP: 7 Kinds  54×7 =  378 Kinds
  24. 24. 発表の流れ 1. 背景 2. ppOpen‐HPCプロジェクトと AT言語ppOpen‐AT 3. Seism3D(ppOpen‐APPL/FDM)の コードチューニング手法 4. 階層型ATへの展開 5. 性能評価 6. おわりに
  25. 25. Machine Environment  (8 nodes of the Xeon Phi)  The Intel Xeon Phi   Xeon Phi 5110P (1.053 GHz), 60 cores  Memory Amount:8 GB (GDDR5)  Theoretical Peak Performance:1.01 TFLOPS  One board per node of the Xeon phi cluster  InfiniBand FDR x 2 Ports   Mellanox Connect‐IB  PCI‐E Gen3 x16  56Gbps x 2  Theoretical Peak bandwidth 13.6GB/s  Full‐Bisection  Intel MPI  Based on MPICH2, MVAPICH2  Version 5.0 Update 3 Build 20150128   Compiler:Intel Fortran version 15.0.3 20150407  Compiler Options: ‐ipo20 ‐O3 ‐warn all ‐openmp ‐mcmodel=medium ‐shared‐intel –mmic ‐align array64byte  KMP_AFFINITY=granularity=fine, balanced (Uniform Distribution of threads  between sockets)
  26. 26. Execution Details of Hybrid  MPI/OpenMP • Target MPI Processes and OMP Threads on the Xeon Phi – The Xeon Phi with 4 HT (Hyper Threading)  – PX TY: X MPI Processes and Y Threads per process – P8T240 : Minimum Hybrid MPI/OpenMP execution for  ppOpen‐APPL/FDM, since it needs minimum 8 MPI Processes. – P16T120 – P32T60 – P64T30 – P128T15   – P240T8 – P480T4 – Less than P960T2 cause an MPI error in this environment. # 0 # 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 1 0 # 1 1 # 1 2 # 1 3 # 1 4 # 1 5 P2T8 # 0 # 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 # 9 # 1 0 # 1 1 # 1 2 # 1 3 # 1 4 # 1 5 P4T4 Target of cores for  one MPI Process
  27. 27. BREAK DOWN OF TIMINGS 
  28. 28. THE BEST IMPLEMENTATION
  29. 29. 発表の流れ 1. 背景 2. ppOpen‐HPCプロジェクトと AT言語ppOpen‐AT 3. Seism3D(ppOpen‐APPL/FDM)の コードチューニング手法 4. 階層型ATへの展開 5. 性能評価 6. おわりに
  30. 30. オリジナリティ (AT言語) AT Language  / Items # 1 # 2 # 3 # 4 # 5 # 6 # 7 # 8 ppOpen‐AT OAT Directives ✔ ✔ ✔ ✔ ✔ なし Vendor Compilers 対象外 Limited ‐ Transformation  Recipes  Recipe Descriptions ✔ ✔ ChiLL POET Xform Description ✔ ✔ POET translator, ROSE X language  Xlang Pragmas ✔ ✔ X Translation, ‘C and tcc SPL SPL Expressions ✔ ✔ ✔ A Script Language ADAPT ADAPT  Language ✔ ✔ Polaris Compiler  Infrastructure,  Remote Procedure  Call (RPC) Atune‐IL Atune Pragmas ✔ A Monitoring  Daemon PEPPHER PEPPHER Pragmas (interface) ✔ ✔ ✔ PEPPHER task graph and run-time Xevolver Directive Extension (Recipe Descriptions) (✔) (✔) (✔) ROSE, XSLT Translator #1: 複数コンパイラ環境の支援手法 #2: 実行時のループ長の取得 #3: 演算回数の増加を認めるループ分割、および、その分割したループに対するループ融合 #4: 最内側ループの式並び変更 #5:実装選択(階層AT処理)の概念 #6: アルゴリズム選択 #7: 実行情報フィードバックによるコード生成 #8: ソフトウェアスタックの要求 (ユーザ自身で定義する )
  31. 31. Conclusion Remarks  Propose an IF‐free kernel: An effective kernel  implementation of an application with FDM by merging  computations of central‐difference and explicit time  expansion schemes.   Use AT language to adapt code selection for new kernels:  The effectiveness of the new implementation depends  on the CPU architecture and execution situation, such as  problem size and the number of MPI processes and  OpenMP threads.  To obtain free code (MIT Licensing): http://ppopenhpc.cc.u‐tokyo.ac.jp/
  32. 32. Future Work • Improving Search Algorithm – We use a brute‐force search in current implementation. • This is feasible by applying knowledge of application. – We have implemented a new search algorithm based on black box  performance models. • d‐Spline Model (interpolation and incremental addition based) ,collaborated with Prof. Tanaka (Kogakuin U.) • Surrogate Model (interpolation and probability based) collaborated  with Prof. Wang (National Taiwan U.)  • Off‐loading Implementation Selection  (for the Xeon Phi) – If problem size is too small to do off‐loading, the target execution is  performed on CPU automatically. • Adaptation of OpenACC for GPU computing – Selection of OpenACC directives with ppOpenAT  by Dr. Ohshima. • gang, vector, parallel, etc. 
  33. 33. http://ppopenhpc.cc.u‐tokyo.ac.jp/ Thank you for your attention! Questions?
  34. 34. 参考文献 1) K. Nakajima, M. Satoh, T. Furumura, H. Okuda, T. Iwashita, H. Sakaguchi, T. Katagiri, M. Matsumoto, S. Ohshima,  H. Jitsumoto, T. Arakawa, F. Mori, T. Kitayama, A. Ida and M. Y. Matsuo, ppOpen‐HPC: Open Source Infrastructure  for Development and Execution of Large‐Scale Scientific Applications on Post‐Peta‐Scale Supercomputers with  Automatic Tuning (AT), Optimization in the Real World, Mathematics for Industry 13, K. Fujisawa et al. (eds.),  Springer, pp.15‐35 (2016) 2) Takahiro Katagiri, Kenji Kise, Hiroki Honda, Toshitsugu Yuba: FIBER: A general framework for auto‐tuning  software, The Fifth International Symposium on High Performance Computing (ISHPC‐V), Springer LNCS 2858, pp.  146‐159 (2003) 3) Takahiro Katagiri, Kenji Kise, Hiroki Honda, Toshitsugu Yuba: Effect of auto‐tuning with user's knowledge for  numerical software, Proceedings of the ACM 1st conference on Computing frontiers (CF2004), pp.12‐25, (2004) 4) Takahiro Katagiri, Kenji Kise, Hiroki Honda, Toshitsugu Yuba: ABCLibScript: A directive to support specification of  an auto‐tuning facility for numerical software, Parallel Computing ,32 (1), pp.92‐112 (2006) 5) Takahiro Katagiri, Kenji Kise, Hiroki Honda, and Toshitsugu Yuba: ABCLib_DRSSED: A Parallel Eigensolver with an  Auto‐tuning Facility, Parallel Computing, Vol.32, Issue 3, pp.231‐250 (2006) 6) Takahiro Katagiri, Satoshi Ito, Satoshi Ohshima: Early experiences for adaptation of auto‐tuning by ppOpen‐AT to  an explicit method, Special Session: Auto‐Tuning for Multicore and GPU (ATMG) (In Conjunction with the IEEE  MCSoC‐13), Proceedings of MCSoC‐13, pp.123‐128 (2013)  7) Takahiro Katagiri, Satoshi Ohshima, Masaharu Matsumoto: Auto‐tuning of computation kernels from an FDM  Code with ppOpen‐AT, Special Session: Auto‐Tuning for Multicore and GPU (ATMG) (In Conjunction with the IEEE  MCSoC‐14), Proceedings of MCSoC‐14, pp.253‐260 (2014)  8) Takahiro Katagiri, Satoshi Ohshima, Masaharu Matsumoto: Directive‐based Auto‐tuning for the Finite Difference  Method on the Xeon Phi, The Tenth International Workshop on Automatic Performance Tuning (iWAPT2015) (In  Conjunction with the IEEE IPDPS2015 ), Proceedings of IPDPSW2015, pp.1221‐1230 (2015)

×