SlideShare a Scribd company logo
1 of 39
GPU DE   いろんな   ちょっとした問題解いてみた
                 Terumi YAMADA
自己紹介

•   山田てるみ(研修中

•   SIMD大好きっ子

    •   Twitter: telmin_orca
もくじ
•   自己紹介

•   前フリ

•   巡回セールスマン問題解いてみた

•   Aobench走らせてみた

•   まとめ
前フリ
OpenCL
OpenCLとは?

  ステマ
OpenCL
OpenCLとは?

  ステマ
OpenCLとは
OpenCLとは
OpenCLとは


Heterogeneous
Heterogeneous?
NVIDIA

•   Geforce GTX 580


    •   Fermi


    •   512 CUDA core


    •   3GB RAM


    •   PCIe 2.0
AMD

•   Radeon HD 7970


    •   GCN


    •   2048 Streaming Processor


    •   3GB RAM


    •   PCIe 3.0
HOST


•   Intel Core i7 2600K


    •   SandyBridge


    •   8GB RAM
巡回セールスマン問題解いてみた
巡回セールスマン問題?
解法

•   遺伝的アルゴリズム

•   蟻コロニー最適化

•   μ-opt法

    •   LK法
2-opt法

i   k            i   k




l   j            l   j
Parallel 2-opt


•   SIMD 2-opt法のGPGPUへの適応と評価

    •   第74回情報処理学会全国大会 GPUセッション
重いのは?
  i   k   i   k




  l   j   l   j
CPU -> GPU

            経路長計算
最短経路選択
           最短経路交換
Result
       CPU      NVIDIA     AMD

10万   152.241   114.02    2472.06

12万   235.05    168.58    3487.41

14万   296.395   266.211

16万   427.161   328.547
…?
       CPU      NVIDIA     AMD

10万   152.241   114.02    2472.06

12万   235.05    168.58    3487.41

14万   296.395   266.211

16万   427.161   328.547
…?
       CPU      NVIDIA     AMD

10万   152.241   114.02    2472.06

12万   235.05    168.58    3487.41

14万   296.395   266.211

16万   427.161   328.547
…?
       CPU      NVIDIA     AMD

10万   152.241   114.02    2472.06

12万   235.05    168.58    3487.41

14万   296.395   266.211

16万   427.161   328.547
                            \(^o^)/
Aobench 走らせてみた
Aobench?

•   Ambient Occlution benchmark.


    •   @syoyo氏制作


    •   浮動小数点演算のベンチマーク
Ambient Occlution


•   Global Illumination

    •   間接光

    •   結構重い
重いのは?


•   Intersection

    •   Sphere * 3 + Plane = 4

        •   AO sample 64 * 64 = 256
CPU -> GPU
Result

              CPU      NVIDIA   AMD

 256 * 256
               6.30    0.057    0.061
  64 * 64
 512 * 512
              24.58    0.213    0.131
  64 * 64
1024 * 1024
              96.735   0.831    0.4462
  64 * 64
:
: が :   //: /:::|::',|::'、:::::::::\:.:\.:.:.ヽ:.:.:\:.:..\::::::::::::\、::::\    : : 
:
: 何 :  /!::|::l:::: /|:::l:ヽ:\::ヽ:.:\:.:\.:::ヽ:.:.:ヽ:.:.:.:\::::::::::::\ ̄   : : 
:
: だ :   |/l::|::|::|: ト、:::::::::、、:ヽ、:.:.:.:::::::::::::::ヽ::::.:ヽ:.:.:.:.\:.:.:.ヽ:::\.   : 
: :
: か :   |::|::/l::|::|r-ヽ:::::ヽ(ヽー,―\::::::、::::::::::ヽ::.:.::::::.:::::::ヾ. ̄   : : 
:
:    :   }//l::|:::|{(:::)ヾ、:::ヽ \!(:::) ヽ,:::ヽ:::::::::::::::::::::::::::::::::::ヾ、   : 
: :
: わ :.   |/l::|::|:::|ヽ==''" \:ヽ、ヽ=='" |:::::::::::::::::::::::::::::::::::ヽ、::::\
  か     / ',|::|:::|   /   `゛       |!::::::::::::::::::::::::::::ト、::ト、_` ゛`
  ら      l::!::::ト、  '、 _         ||::::::::::::::::::::::::ト:ヽヾ| | ̄ ̄ ̄
`ヽ、
  な     r'"´||',::::',                 |:::::/l:::::|\:::ト、ヾ | |     / / \
  い   /   ll ',::', 、 ーこニ=-       /!::/ ヽ:::|  ヾ、  ノ ノ  /  ,イ   
ヽ、
Device type: Unknown
                                         ???
Max resource 2D width/height: 16384/16384
Total GPU memory size: 3072 MB
Total CPU cached space size: 508 MB
Total CPU uncached space size: 1788 MB
GPU engine clock: 925 MHz
GPU memory clock: 1375 MHz
Number of timing loops: 100
[      16 bytes] CPU->GPU= 800.000 KB/sec, GPU->CPU 533.333 KB/sec
[      32 bytes] CPU->GPU= 1.600 MB/sec, GPU->CPU 1.067 MB/sec
[      64 bytes] CPU->GPU= 2.133 MB/sec, GPU->CPU 2.133 MB/sec
[     128 bytes] CPU->GPU= 2.560 MB/sec, GPU->CPU 4.267 MB/sec
[     256 bytes] CPU->GPU= 8.533 MB/sec, GPU->CPU 8.533 MB/sec
[     512 bytes] CPU->GPU= 17.067 MB/sec, GPU->CPU 25.600 MB/sec
[    1024 bytes] CPU->GPU= 51.200 MB/sec, GPU->CPU 34.133 MB/sec
[    2048 bytes] CPU->GPU= 102.400 MB/sec, GPU->CPU 68.267 MB/sec
[    4096 bytes] CPU->GPU= 204.800 MB/sec, GPU->CPU 204.800 MB/sec
[    8192 bytes] CPU->GPU= 409.600 MB/sec, GPU->CPU 409.600 MB/sec
[ 16384 bytes] CPU->GPU= 409.600 MB/sec, GPU->CPU 819.200 MB/sec
[ 32768 bytes] CPU->GPU= 1.638 GB/sec, GPU->CPU 1.638 GB/sec
[ 65536 bytes] CPU->GPU= 2.185 GB/sec, GPU->CPU 3.277 GB/sec
...
[ 4194304 bytes] CPU->GPU= 6.658 GB/sec, GPU->CPU 4.033 GB/sec
[ 8388608 bytes] CPU->GPU= 6.658 GB/sec, GPU->CPU 3.884 GB/sec
[ 16777216 bytes] CPU->GPU= 6.684 GB/sec, GPU->CPU 3.233 GB/sec
[ 33554432 bytes] CPU->GPU= 6.697 GB/sec, GPU->CPU 2.993 GB/sec
[ 67108864 bytes] CPU->GPU= 6.697 GB/sec, GPU->CPU 2.870 GB/sec
[ 134217728 bytes] CPU->GPU= 6.704 GB/sec, GPU->CPU 2.789 GB/sec
[ 268435456 bytes] CPU->GPU= 6.699 GB/sec, GPU->CPU 2.767 GB/sec
[ 536870912 bytes] CPU->GPU= 6.705 GB/sec, GPU->CPU 2.797 GB/sec
[1073741824 bytes] CPU->GPU= 6.705 GB/sec, GPU->CPU 2.771 GB/sec
calResAllocRemote2D() returned an error when trying to allocate 1874853888 bytes (uncached)!
Peak CPU->GPU Bandwidth = 6.705 GB/sec [data size = 536870912 bytes]
Peak GPU->CPU Bandwidth = 4.369 GB/sec [data size = 131072 bytes]
????
GeForce GTX 580

Quick Mode

Host to Device Bandwidth, 1 Device(s), Paged memory, direct access
 Transfer Size (Bytes)    Bandwidth(MB/s)
 33554432               5561.7

Device to Host Bandwidth, 1 Device(s), Paged memory, direct access
 Transfer Size (Bytes)    Bandwidth(MB/s)
 33554432               5466.2

Device to Device Bandwidth, 1 Device(s)
 Transfer Size (Bytes)   Bandwidth(MB/s)
 33554432               138261.9
?????
__kernel void map_test(__global int* src,__global int* dst,const int limit)
{
  int id = get_global_id(0);

    if(id > limit) return;

    dst[id] = src[limit - 1 - id];
}
?????
__kernel void map_test(__global int* src,__global int* dst,const int limit)
{
  int id = get_global_id(0);

    if(id > limit) return;

    dst[id] = src[limit - 1 - id];
}                                               1000 ~
!

         NVIDIA      AMD

         0.355824   1.70634
 1000
          0.16186    0.7224
         3.54601    14.1305
10000
          1.697      6.1982
         35.4747    128.583
100000
          16.213    58.0289
まとめ
•   GPGPUやるならGeforce GTX 580

•   Radeon HD 7970は…

    •   スロースターター 足に爆弾

        •   カーネルが大きくなれば…

More Related Content

What's hot

LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)MITSUNARI Shigeo
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも- Yusaku Watanabe
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementationMITSUNARI Shigeo
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiKen'ichi Sakiyama
 
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mclMITSUNARI Shigeo
 
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介MITSUNARI Shigeo
 
Popcntによるハミング距離計算
Popcntによるハミング距離計算Popcntによるハミング距離計算
Popcntによるハミング距離計算Norishige Fukushima
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介MITSUNARI Shigeo
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法Takeshi Yamamuro
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装MITSUNARI Shigeo
 

What's hot (20)

LLVM最適化のこつ
LLVM最適化のこつLLVM最適化のこつ
LLVM最適化のこつ
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
フラグを愛でる
フラグを愛でるフラグを愛でる
フラグを愛でる
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
Xeon PhiとN体計算コーディング x86/x64最適化勉強会6(@k_nitadoriさんの代理アップ)
 
Pythonによる並列プログラミング -GPGPUも-
Pythonによる並列プログラミング   -GPGPUも- Pythonによる並列プログラミング   -GPGPUも-
Pythonによる並列プログラミング -GPGPUも-
 
Prosym2012
Prosym2012Prosym2012
Prosym2012
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
llvm入門
llvm入門llvm入門
llvm入門
 
Wavelet matrix implementation
Wavelet matrix implementationWavelet matrix implementation
Wavelet matrix implementation
 
Javaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapiJavaで簡単にgpgpu aparapi
Javaで簡単にgpgpu aparapi
 
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl汎用性と高速性を目指したペアリング暗号ライブラリ mcl
汎用性と高速性を目指したペアリング暗号ライブラリ mcl
 
Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介Haswellサーベイと有限体クラスの紹介
Haswellサーベイと有限体クラスの紹介
 
Popcntによるハミング距離計算
Popcntによるハミング距離計算Popcntによるハミング距離計算
Popcntによるハミング距離計算
 
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
 
研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法研究動向から考えるx86/x64最適化手法
研究動向から考えるx86/x64最適化手法
 
From IA-32 to avx-512
From IA-32 to avx-512From IA-32 to avx-512
From IA-32 to avx-512
 
高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装高速な倍精度指数関数expの実装
高速な倍精度指数関数expの実装
 
optimal Ate pairing
optimal Ate pairingoptimal Ate pairing
optimal Ate pairing
 

Viewers also liked

Jetson TK1でSemi-Global Matching
Jetson TK1でSemi-Global MatchingJetson TK1でSemi-Global Matching
Jetson TK1でSemi-Global MatchingRyo Sakamoto
 
Jetson tx1 を利用した画像認識によるロボット制御
Jetson tx1 を利用した画像認識によるロボット制御Jetson tx1 を利用した画像認識によるロボット制御
Jetson tx1 を利用した画像認識によるロボット制御Tomokazu Kanazawa
 
Polymerやってみた
PolymerやってみたPolymerやってみた
PolymerやってみたYosuke Onoue
 
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜Ryoma Sin'ya
 
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいAngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいYosuke Onoue
 
Angular 2のRenderer
Angular 2のRendererAngular 2のRenderer
Angular 2のRendererYosuke Onoue
 
GDG DevFest Kobe Firebaseハンズオン勉強会
GDG DevFest Kobe Firebaseハンズオン勉強会GDG DevFest Kobe Firebaseハンズオン勉強会
GDG DevFest Kobe Firebaseハンズオン勉強会Yosuke Onoue
 
アニメーション(のためのパフォーマンス)の基礎知識
アニメーション(のためのパフォーマンス)の基礎知識アニメーション(のためのパフォーマンス)の基礎知識
アニメーション(のためのパフォーマンス)の基礎知識Yosuke Onoue
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)智啓 出川
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境智啓 出川
 
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015SaitoTsutomu
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないことNorishige Fukushima
 

Viewers also liked (15)

Jetson TK1でSemi-Global Matching
Jetson TK1でSemi-Global MatchingJetson TK1でSemi-Global Matching
Jetson TK1でSemi-Global Matching
 
PyCUDAの紹介
PyCUDAの紹介PyCUDAの紹介
PyCUDAの紹介
 
Jetson tx1 を利用した画像認識によるロボット制御
Jetson tx1 を利用した画像認識によるロボット制御Jetson tx1 を利用した画像認識によるロボット制御
Jetson tx1 を利用した画像認識によるロボット制御
 
Polymerやってみた
PolymerやってみたPolymerやってみた
Polymerやってみた
 
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
AVX2時代の正規表現マッチング 〜半群でぐんぐん!〜
 
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいAngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
 
Angular 2のRenderer
Angular 2のRendererAngular 2のRenderer
Angular 2のRenderer
 
GDG DevFest Kobe Firebaseハンズオン勉強会
GDG DevFest Kobe Firebaseハンズオン勉強会GDG DevFest Kobe Firebaseハンズオン勉強会
GDG DevFest Kobe Firebaseハンズオン勉強会
 
アニメーション(のためのパフォーマンス)の基礎知識
アニメーション(のためのパフォーマンス)の基礎知識アニメーション(のためのパフォーマンス)の基礎知識
アニメーション(のためのパフォーマンス)の基礎知識
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
 
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
2015年度GPGPU実践基礎工学 第14回 GPGPU組込開発環境
 
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
組合せ最適化を体系的に知ってPythonで実行してみよう PyCon 2015
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 

Similar to GPGPU deいろんな問題解いてみた

CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018Toru Makabe
 
1070: CUDA プログラミング入門
1070: CUDA プログラミング入門1070: CUDA プログラミング入門
1070: CUDA プログラミング入門NVIDIA Japan
 
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみるYasuhiro Yoshimura
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyoManaMurakami1
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroupManaMurakami1
 
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性Yusaku Watanabe
 
関東GPGPU勉強会資料
関東GPGPU勉強会資料関東GPGPU勉強会資料
関東GPGPU勉強会資料Kimikazu Kato
 
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみたNissho Lab
 
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計ShuheiUda
 
INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向decode2016
 
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012Takuro Iizuka
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA Japan
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectComputedasyprocta
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用についてハイシンク創研 / Laboratory of Hi-Think Corporation
 
20170329_BigData基盤研究会#7
20170329_BigData基盤研究会#720170329_BigData基盤研究会#7
20170329_BigData基盤研究会#7Kohei KaiGai
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson NanoNVIDIA Japan
 
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場幸智 Yukinori 黒田 Kuroda
 
200625material naruse
200625material naruse200625material naruse
200625material naruseRCCSRENKEI
 

Similar to GPGPU deいろんな問題解いてみた (20)

CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
インフラ野郎 Azureチーム v18.11 at Tech Summit 2018
 
1070: CUDA プログラミング入門
1070: CUDA プログラミング入門1070: CUDA プログラミング入門
1070: CUDA プログラミング入門
 
Cuda
CudaCuda
Cuda
 
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる【関東GPGPU勉強会#4】GTX 1080でComputer Visionアルゴリズムを色々動かしてみる
【関東GPGPU勉強会#4】GTX 1080でComputer Vision アルゴリズムを色々動かしてみる
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性GPGPUによるパーソナルスーパーコンピュータの可能性
GPGPUによるパーソナルスーパーコンピュータの可能性
 
関東GPGPU勉強会資料
関東GPGPU勉強会資料関東GPGPU勉強会資料
関東GPGPU勉強会資料
 
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
【MySQL編】サーバ環境が進化する今話題のPCIe SSDを評価してみた
 
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
サポート エンジニアが語る、トラブルを未然に防ぐための Azure インフラ設計
 
INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向INF-002_Azure IaaS 最新動向
INF-002_Azure IaaS 最新動向
 
NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012NVIDIA Japan Seminar 2012
NVIDIA Japan Seminar 2012
 
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
NVIDIA 更新情報: Tesla P100 PCIe/cuDNN 5.1
 
Hello, DirectCompute
Hello, DirectComputeHello, DirectCompute
Hello, DirectCompute
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
 
20170329_BigData基盤研究会#7
20170329_BigData基盤研究会#720170329_BigData基盤研究会#7
20170329_BigData基盤研究会#7
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
 
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場
「Windows Azure でスーパーコンピューティング!」for Microsoft MVP camp 2014 大阪会場
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
 

Recently uploaded

My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」inspirehighstaff03
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイントshu1108hina1020
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」inspirehighstaff03
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfoganekyokoi
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1Toru Oga
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdfoganekyokoi
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」inspirehighstaff03
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」inspirehighstaff03
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfinspirehighstaff03
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」inspirehighstaff03
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slidessusere0a682
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」inspirehighstaff03
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」inspirehighstaff03
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」inspirehighstaff03
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」inspirehighstaff03
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」inspirehighstaff03
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」inspirehighstaff03
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」inspirehighstaff03
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfoganekyokoi
 

Recently uploaded (20)

My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
My Inspire High Award 2024「世の中の流行はどのようにして生まれるのか」
 
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
3年前期 交通基盤工学 第一回 ガイダンス 交通基盤工学の概要  パワーポイント
 
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
My Inspire High Award2024「外国人が日本のテーブルマナーに驚く理由は?」
 
Divorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdfDivorce agreements in administrative work.pdf
Divorce agreements in administrative work.pdf
 
International Politics I - Lecture 1
International Politics I - Lecture 1International Politics I - Lecture 1
International Politics I - Lecture 1
 
What I did before opening my business..pdf
What I did before opening my business..pdfWhat I did before opening my business..pdf
What I did before opening my business..pdf
 
My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」My Inspire High Award 2024    「孤独は敵なのか?」
My Inspire High Award 2024    「孤独は敵なのか?」
 
My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」My Inspire High Award 2024 「AIと仲良くなるには?」
My Inspire High Award 2024 「AIと仲良くなるには?」
 
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
My Inspire High Award 2024「なぜ人は他人と違うところがあってもそれをなかなか誇れないのか?」
 
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdfMy Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
My Inspire High Award 2024「Yakushima Islandってなんか変じゃない?」.pdf
 
My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」My Inspire High Award 2024  「正義って存在するの?」
My Inspire High Award 2024  「正義って存在するの?」
 
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
【ゲーム理論入門】ChatGPTが作成した ゲーム理論の問題を解く #3 Slide
 
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
My Inspire High Award 2024「なぜ、好きなことにいつかは飽きるの」
 
My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」My Inspire High Award 2024 「本当の『悪者』って何?」
My Inspire High Award 2024 「本当の『悪者』って何?」
 
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」My Inspire High Award 2024「なぜ議会への関心が低いのか?」
My Inspire High Award 2024「なぜ議会への関心が低いのか?」
 
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
My Inspire High Award 2024「スーパーマーケットで回収されたキャベツ外葉は廃棄されているの?」
 
My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」My Inspire High Award 2024「老いることは不幸なこと?」
My Inspire High Award 2024「老いることは不幸なこと?」
 
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」My Inspire High Award 2024「他者と自分、対立を防ぐには?」
My Inspire High Award 2024「他者と自分、対立を防ぐには?」
 
My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」My Inspire High Award 2024      「家族とは何か」
My Inspire High Award 2024      「家族とは何か」
 
Establishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdfEstablishment and operation of medical corporations.pdf
Establishment and operation of medical corporations.pdf
 

GPGPU deいろんな問題解いてみた

  • 1. GPU DE いろんな ちょっとした問題解いてみた Terumi YAMADA
  • 2. 自己紹介 • 山田てるみ(研修中 • SIMD大好きっ子 • Twitter: telmin_orca
  • 3. もくじ • 自己紹介 • 前フリ • 巡回セールスマン問題解いてみた • Aobench走らせてみた • まとめ
  • 11. NVIDIA • Geforce GTX 580 • Fermi • 512 CUDA core • 3GB RAM • PCIe 2.0
  • 12. AMD • Radeon HD 7970 • GCN • 2048 Streaming Processor • 3GB RAM • PCIe 3.0
  • 13. HOST • Intel Core i7 2600K • SandyBridge • 8GB RAM
  • 16. 解法 • 遺伝的アルゴリズム • 蟻コロニー最適化 • μ-opt法 • LK法
  • 17. 2-opt法 i k i k l j l j
  • 18. Parallel 2-opt • SIMD 2-opt法のGPGPUへの適応と評価 • 第74回情報処理学会全国大会 GPUセッション
  • 19.
  • 20. 重いのは? i k i k l j l j
  • 21. CPU -> GPU 経路長計算 最短経路選択 最短経路交換
  • 22. Result CPU NVIDIA AMD 10万 152.241 114.02 2472.06 12万 235.05 168.58 3487.41 14万 296.395 266.211 16万 427.161 328.547
  • 23. …? CPU NVIDIA AMD 10万 152.241 114.02 2472.06 12万 235.05 168.58 3487.41 14万 296.395 266.211 16万 427.161 328.547
  • 24. …? CPU NVIDIA AMD 10万 152.241 114.02 2472.06 12万 235.05 168.58 3487.41 14万 296.395 266.211 16万 427.161 328.547
  • 25. …? CPU NVIDIA AMD 10万 152.241 114.02 2472.06 12万 235.05 168.58 3487.41 14万 296.395 266.211 16万 427.161 328.547 \(^o^)/
  • 27. Aobench? • Ambient Occlution benchmark. • @syoyo氏制作 • 浮動小数点演算のベンチマーク
  • 28. Ambient Occlution • Global Illumination • 間接光 • 結構重い
  • 29. 重いのは? • Intersection • Sphere * 3 + Plane = 4 • AO sample 64 * 64 = 256
  • 31. Result CPU NVIDIA AMD 256 * 256 6.30 0.057 0.061 64 * 64 512 * 512 24.58 0.213 0.131 64 * 64 1024 * 1024 96.735 0.831 0.4462 64 * 64
  • 32. : : が :   //: /:::|::',|::'、:::::::::\:.:\.:.:.ヽ:.:.:\:.:..\::::::::::::\、::::\    : :  : : 何 :  /!::|::l:::: /|:::l:ヽ:\::ヽ:.:\:.:\.:::ヽ:.:.:ヽ:.:.:.:\::::::::::::\ ̄   : :  : : だ :   |/l::|::|::|: ト、:::::::::、、:ヽ、:.:.:.:::::::::::::::ヽ::::.:ヽ:.:.:.:.\:.:.:.ヽ:::\.   :  : : : か :   |::|::/l::|::|r-ヽ:::::ヽ(ヽー,―\::::::、::::::::::ヽ::.:.::::::.:::::::ヾ. ̄   : :  : :    :   }//l::|:::|{(:::)ヾ、:::ヽ \!(:::) ヽ,:::ヽ:::::::::::::::::::::::::::::::::::ヾ、   :  : : : わ :.   |/l::|::|:::|ヽ==''" \:ヽ、ヽ=='" |:::::::::::::::::::::::::::::::::::ヽ、::::\   か     / ',|::|:::|   /   `゛       |!::::::::::::::::::::::::::::ト、::ト、_` ゛`   ら      l::!::::ト、  '、 _         ||::::::::::::::::::::::::ト:ヽヾ| | ̄ ̄ ̄ `ヽ、   な     r'"´||',::::',                 |:::::/l:::::|\:::ト、ヾ | |     / / \   い   /   ll ',::', 、 ーこニ=-       /!::/ ヽ:::|  ヾ、  ノ ノ  /  ,イ    ヽ、
  • 33. Device type: Unknown ??? Max resource 2D width/height: 16384/16384 Total GPU memory size: 3072 MB Total CPU cached space size: 508 MB Total CPU uncached space size: 1788 MB GPU engine clock: 925 MHz GPU memory clock: 1375 MHz Number of timing loops: 100 [ 16 bytes] CPU->GPU= 800.000 KB/sec, GPU->CPU 533.333 KB/sec [ 32 bytes] CPU->GPU= 1.600 MB/sec, GPU->CPU 1.067 MB/sec [ 64 bytes] CPU->GPU= 2.133 MB/sec, GPU->CPU 2.133 MB/sec [ 128 bytes] CPU->GPU= 2.560 MB/sec, GPU->CPU 4.267 MB/sec [ 256 bytes] CPU->GPU= 8.533 MB/sec, GPU->CPU 8.533 MB/sec [ 512 bytes] CPU->GPU= 17.067 MB/sec, GPU->CPU 25.600 MB/sec [ 1024 bytes] CPU->GPU= 51.200 MB/sec, GPU->CPU 34.133 MB/sec [ 2048 bytes] CPU->GPU= 102.400 MB/sec, GPU->CPU 68.267 MB/sec [ 4096 bytes] CPU->GPU= 204.800 MB/sec, GPU->CPU 204.800 MB/sec [ 8192 bytes] CPU->GPU= 409.600 MB/sec, GPU->CPU 409.600 MB/sec [ 16384 bytes] CPU->GPU= 409.600 MB/sec, GPU->CPU 819.200 MB/sec [ 32768 bytes] CPU->GPU= 1.638 GB/sec, GPU->CPU 1.638 GB/sec [ 65536 bytes] CPU->GPU= 2.185 GB/sec, GPU->CPU 3.277 GB/sec ... [ 4194304 bytes] CPU->GPU= 6.658 GB/sec, GPU->CPU 4.033 GB/sec [ 8388608 bytes] CPU->GPU= 6.658 GB/sec, GPU->CPU 3.884 GB/sec [ 16777216 bytes] CPU->GPU= 6.684 GB/sec, GPU->CPU 3.233 GB/sec [ 33554432 bytes] CPU->GPU= 6.697 GB/sec, GPU->CPU 2.993 GB/sec [ 67108864 bytes] CPU->GPU= 6.697 GB/sec, GPU->CPU 2.870 GB/sec [ 134217728 bytes] CPU->GPU= 6.704 GB/sec, GPU->CPU 2.789 GB/sec [ 268435456 bytes] CPU->GPU= 6.699 GB/sec, GPU->CPU 2.767 GB/sec [ 536870912 bytes] CPU->GPU= 6.705 GB/sec, GPU->CPU 2.797 GB/sec [1073741824 bytes] CPU->GPU= 6.705 GB/sec, GPU->CPU 2.771 GB/sec calResAllocRemote2D() returned an error when trying to allocate 1874853888 bytes (uncached)! Peak CPU->GPU Bandwidth = 6.705 GB/sec [data size = 536870912 bytes] Peak GPU->CPU Bandwidth = 4.369 GB/sec [data size = 131072 bytes]
  • 34. ???? GeForce GTX 580 Quick Mode Host to Device Bandwidth, 1 Device(s), Paged memory, direct access Transfer Size (Bytes) Bandwidth(MB/s) 33554432 5561.7 Device to Host Bandwidth, 1 Device(s), Paged memory, direct access Transfer Size (Bytes) Bandwidth(MB/s) 33554432 5466.2 Device to Device Bandwidth, 1 Device(s) Transfer Size (Bytes) Bandwidth(MB/s) 33554432 138261.9
  • 35. ????? __kernel void map_test(__global int* src,__global int* dst,const int limit) { int id = get_global_id(0); if(id > limit) return; dst[id] = src[limit - 1 - id]; }
  • 36. ????? __kernel void map_test(__global int* src,__global int* dst,const int limit) { int id = get_global_id(0); if(id > limit) return; dst[id] = src[limit - 1 - id]; } 1000 ~
  • 37. ! NVIDIA AMD 0.355824 1.70634 1000 0.16186 0.7224 3.54601 14.1305 10000 1.697 6.1982 35.4747 128.583 100000 16.213 58.0289
  • 39. GPGPUやるならGeforce GTX 580 • Radeon HD 7970は… • スロースターター 足に爆弾 • カーネルが大きくなれば…

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n