Submit Search
Cuda
2 likes
1,741 views
Shumpei Hozumi
cuda
Technology
Read more
1 of 45
Download now
Downloaded 35 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
More Related Content
PDF
CUDAプログラミング入門
NVIDIA Japan
PDF
Maxwell と Java CUDAプログラミング
NVIDIA Japan
PDF
20170726 py data.tokyo
ManaMurakami1
PDF
NVIDIA ディープラーニング入門
Seong-Hun Choe
PDF
1070: CUDA プログラミング入門
NVIDIA Japan
PDF
GTC 2017 基調講演からディープラーニング関連情報のご紹介
NVIDIA Japan
PDF
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
ハイシンク創研 / Laboratory of Hi-Think Corporation
PDF
20170421 tensor flowusergroup
ManaMurakami1
CUDAプログラミング入門
NVIDIA Japan
Maxwell と Java CUDAプログラミング
NVIDIA Japan
20170726 py data.tokyo
ManaMurakami1
NVIDIA ディープラーニング入門
Seong-Hun Choe
1070: CUDA プログラミング入門
NVIDIA Japan
GTC 2017 基調講演からディープラーニング関連情報のご紹介
NVIDIA Japan
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
ハイシンク創研 / Laboratory of Hi-Think Corporation
20170421 tensor flowusergroup
ManaMurakami1
What's hot
(20)
PDF
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA Japan
PDF
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
PDF
20170329_BigData基盤研究会#7
Kohei KaiGai
PDF
(JP) GPGPUがPostgreSQLを加速する
Kohei KaiGai
PDF
1072: アプリケーション開発を加速するCUDAライブラリ
NVIDIA Japan
PDF
Chainer で Tensor コア (fp16) を使いこなす
NVIDIA Japan
PDF
OpenCLに触れてみよう
You&I
PDF
20210731_OSC_Kyoto_PGStrom3.0
Kohei KaiGai
PDF
Flow in VR Funhouse MOD Kit
NVIDIA Japan
PDF
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
PDF
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
Insight Technology, Inc.
PDF
SQL+GPU+SSD=∞ (Japanese)
Kohei KaiGai
PDF
DGX-2 を取り巻く GPU 最新技術情報
NVIDIA Japan
PDF
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
PPTX
関東GPGPU勉強会資料
Kimikazu Kato
PDF
EnrootとPyxisで快適コンテナ生活
Kuninobu SaSaki
PDF
pgconfasia2016 lt ssd2gpu
Kohei KaiGai
PDF
GPU クラウド コンピューティング
NVIDIA Japan
PDF
1000: 基調講演
NVIDIA Japan
PDF
C#, C/CLI と CUDAによる画像処理ことはじめ
NVIDIA Japan
NVIDIA TESLA V100・CUDA 9 のご紹介
NVIDIA Japan
Pythonによる並列プログラミング -GPGPUも-
Yusaku Watanabe
20170329_BigData基盤研究会#7
Kohei KaiGai
(JP) GPGPUがPostgreSQLを加速する
Kohei KaiGai
1072: アプリケーション開発を加速するCUDAライブラリ
NVIDIA Japan
Chainer で Tensor コア (fp16) を使いこなす
NVIDIA Japan
OpenCLに触れてみよう
You&I
20210731_OSC_Kyoto_PGStrom3.0
Kohei KaiGai
Flow in VR Funhouse MOD Kit
NVIDIA Japan
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
[20170922 Sapporo Tech Bar] 地図用データを高速処理!オープンソースGPUデータベースMapDってどんなもの?? by 株式会社...
Insight Technology, Inc.
SQL+GPU+SSD=∞ (Japanese)
Kohei KaiGai
DGX-2 を取り巻く GPU 最新技術情報
NVIDIA Japan
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
関東GPGPU勉強会資料
Kimikazu Kato
EnrootとPyxisで快適コンテナ生活
Kuninobu SaSaki
pgconfasia2016 lt ssd2gpu
Kohei KaiGai
GPU クラウド コンピューティング
NVIDIA Japan
1000: 基調講演
NVIDIA Japan
C#, C/CLI と CUDAによる画像処理ことはじめ
NVIDIA Japan
Ad
Viewers also liked
(20)
PPTX
Slidecast
Laurnd
DOC
To+pancen+oye
Nita Tsuyoi Josei
PPTX
프레젠테이션1
Jieun Lee
PDF
Memoirs of WWII
margueritecravatt
PPTX
Wind Turbines
Abdulrahman AlMuayqil
PPTX
Question 2 new
famaioua
PPTX
Zara
11262298
PDF
Ordenanza
Jacinto Vera Intriago
PDF
Electroquimica
William Alarcon Canchari
DOC
Efa using spss
huynga
PPTX
Microsoft Romania Christmas Campaign
projects_partnership
PPTX
Ingenieria web
Lorena Vega
PPTX
Hijab
Hajar5
PPTX
Prezentacia
sigmaa
PPT
apple PPT module
mrthree
PDF
Merger control provisions - A step in the right direction
nitinsavara
PDF
NorDigi mobile process analyst white paper
NorDigi
PDF
Scrappers pitch
margueritecravatt
PPTX
Mamma
Francy95
PDF
Redesigning local news
carriekawamura
Slidecast
Laurnd
To+pancen+oye
Nita Tsuyoi Josei
프레젠테이션1
Jieun Lee
Memoirs of WWII
margueritecravatt
Wind Turbines
Abdulrahman AlMuayqil
Question 2 new
famaioua
Zara
11262298
Ordenanza
Jacinto Vera Intriago
Electroquimica
William Alarcon Canchari
Efa using spss
huynga
Microsoft Romania Christmas Campaign
projects_partnership
Ingenieria web
Lorena Vega
Hijab
Hajar5
Prezentacia
sigmaa
apple PPT module
mrthree
Merger control provisions - A step in the right direction
nitinsavara
NorDigi mobile process analyst white paper
NorDigi
Scrappers pitch
margueritecravatt
Mamma
Francy95
Redesigning local news
carriekawamura
Ad
Similar to Cuda
(20)
KEY
NVIDIA Japan Seminar 2012
Takuro Iizuka
PDF
Hello, DirectCompute
dasyprocta
DOC
GPGPUによるパーソナルスーパーコンピュータの可能性
Yusaku Watanabe
KEY
PyOpenCLによるGPGPU入門
Yosuke Onoue
KEY
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
PDF
GTC Japan 2017
Hitoshi Sato
PDF
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
PDF
Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
masayukitakagi
PDF
NVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA Japan
PDF
PF部第19回資料 poor man's JTAG
daye001
PDF
PF部2011年12月勉強会.androidsola
android sola
PPTX
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
PDF
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
智啓 出川
PDF
NVIDIA 入門
Wataru Unno
PDF
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
PDF
【A-1】AIを支えるGPUコンピューティングの今
Developers Summit
PDF
45分で理解する 最近のスパコン事情 斉藤之雄
Yukio Saito
PDF
コンピューティングとJava~なにわTECH道
なおき きしだ
KEY
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
PDF
Let's play with Goldfish
Tetsuyuki Kobayashi
NVIDIA Japan Seminar 2012
Takuro Iizuka
Hello, DirectCompute
dasyprocta
GPGPUによるパーソナルスーパーコンピュータの可能性
Yusaku Watanabe
PyOpenCLによるGPGPU入門
Yosuke Onoue
GPGPU deいろんな問題解いてみた
Ryo Sakamoto
GTC Japan 2017
Hitoshi Sato
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
Preferred Networks
Lisp Meet Up #19, cl-cuda: a library to use NVIDIA CUDA in Common Lisp
masayukitakagi
NVIDIA GRID が実現する GPU 仮想化テクノロジー
NVIDIA Japan
PF部第19回資料 poor man's JTAG
daye001
PF部2011年12月勉強会.androidsola
android sola
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
VirtualTech Japan Inc.
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
智啓 出川
NVIDIA 入門
Wataru Unno
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
Fixstars Corporation
【A-1】AIを支えるGPUコンピューティングの今
Developers Summit
45分で理解する 最近のスパコン事情 斉藤之雄
Yukio Saito
コンピューティングとJava~なにわTECH道
なおき きしだ
関東GPGPU勉強会 LLVM meets GPU
Takuro Iizuka
Let's play with Goldfish
Tetsuyuki Kobayashi
Cuda
1.
CUDA
東京工業大学 4年 千葉 滋 研究室 穂積 俊平 1
2.
CUDA 【NVIDIA】の 【GPU】に対する、 【GPGPU】を目的とした 統合開発環境
2
3.
NVIDIA • 本社:アメリカ合衆国カリフォルニア州サンタクララ • 主な製品:GPU •
ライバル: VS. 3
4.
NVIDIA • 本社:アメリカ合衆国カリフォルニア州サンタクララ • 主な製品:GPU •
ライバル:AMD VS. 4
5.
NVIDIA • 本社:アメリカ合衆国カリフォルニア州サンタクララ • 主な製品:GPU •
ライバル:AMD VS. CUDAはNVIDIAのGPUでのみ動作する! 5
6.
GPU コンピュータにおける画像処理の需要の高まり
6
7.
GPU コンピュータにおける画像処理の需要の高まり 画像処理専用のプロセッサを作ろう
7
8.
GPU コンピュータにおける画像処理の需要の高まり 画像処理専用のプロセッサを作ろう GPUの誕生!!!!!
8
9.
GPUのアーキテクチャ SM : SPを複数個含む SP
: 最小単位の演算処理ユニット SM ビデオカード GPU SP SP SM SM SP SP ビデオメモリ 9
10.
GPUとCPUの違い • SMはSIMDで動作する。
10
11.
GPUとCPUの違い • SMはSIMDで動作する。
Single Instruction Multi Data 11
12.
GPUとCPUの違い • SMはSIMDで動作する。
Single Instruction Multi Data SM内のSPは異なる処理をする事はできない。 12
13.
GPUのアーキテクチャ どのくらいの演算処理ユニット(SP)があるのか?
13
14.
GPUのアーキテクチャ どのくらいの演算処理ユニット(SP)があるのか? 比較対象:Intel Corei7
HyperThreadingが4つ。実質8個 14
15.
GPUのアーキテクチャ どのくらいの演算処理ユニット(SP)があるのか? 比較対象:Intel Corei7
HyperThreadingが4つ。実質8個 例:GT200 15
16.
GPUのアーキテクチャ どのくらいの演算処理ユニット(SP)があるのか? 比較対象:Intel Corei7
HyperThreadingが4つ。実質8個 例:GT200 SM数30個 16
17.
GPUのアーキテクチャ どのくらいの演算処理ユニット(SP)があるのか? 比較対象:Intel Corei7
HyperThreadingが4つ。実質8個 例:GT200 SM数30個 各SMに含まれるSPの数8個 30×8 = 17
18.
GPUのアーキテクチャ どのくらいの演算処理ユニット(SP)があるのか? 比較対象:Intel Corei7
HyperThreadingが4つ。実質8個 例:GT200 SM数30個 各SMに含まれるSPの数8個 30×8 = 240個 18
19.
GPUのアーキテクチャ どのくらいの演算処理ユニット(SP)があるのか? 比較対象:Intel Corei7
HyperThreadingが4つ。実質8個 例:GT200 SM数30個 各SMに含まれるSPの数8個 30×8 = 240個 30倍 19
20.
GPGPU GPUの演算処理能力はとても高い
20
21.
GPGPU GPUの演算処理能力はとても高い より汎用的な目的でGPUを使おう!
21
22.
CUDA 【NVIDIA】の 【GPU】に対する、 【GPGPU】を目的とした 統合開発環境
22
23.
CUDA CUDAはCPUとGPU両方扱う! o CPU
=> ホスト o GPU => デバイス 23
24.
CUDA CUDAはCPUとGPU両方扱う! o CPU
=> ホスト o GPU => デバイス ホストとデバイスの間で通信が必要 24
25.
典型的な処理の流れ 1. デバイスメモリ上に領域を確保 2. データをホストメモリからデバイスメモリにコピー 3.
GPUで処理を実行 4. 結果をデバイスメモリからホストメモリにコピー GPU CPU デバイスメモリ ホストメモリ 25
26.
典型的な処理の流れ 1. デバイスメモリ上に領域を確保 2. データをホストメモリからデバイスメモリにコピー 3.
GPUで処理を実行 4. 結果をデバイスメモリからホストメモリにコピー GPU CPU デバイスメモリ ホストメモリ 26
27.
典型的な処理の流れ 1. デバイスメモリ上に領域を確保 2. データをホストメモリからデバイスメモリにコピー 3.
GPUで処理を実行 4. 結果をデバイスメモリからホストメモリにコピー GPU CPU デバイスメモリ ホストメモリ 27
28.
典型的な処理の流れ 1. デバイスメモリ上に領域を確保 2. データをホストメモリからデバイスメモリにコピー 3.
GPUで処理を実行 4. 結果をデバイスメモリからホストメモリにコピー GPU CPU デバイスメモリ ホストメモリ 28
29.
典型的な処理の流れ 1. デバイスメモリ上に領域を確保 2. データをホストメモリからデバイスメモリにコピー 3.
GPUで処理を実行 4. 結果をデバイスメモリからホストメモリにコピー GPU CPU デバイスメモリ ホストメモリ 29
30.
実際のCUDAコード 例 for(int i =
0;i < 1024;i++){ C[i] = A[i] + B[i]; } 30
31.
実際のCUDAコード 1. デバイスメモリ上に領域を確保
31
32.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) 32
33.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) 2. データをホストメモリからデバイスメモリにコピー 33
34.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) cudaMemcpy(A_d,A_h,sizeof(float)*N,hostToDevise) 34
35.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) cudaMemcpy(A_d,A_h,sizeof(float)*N,hostToDevise) 3. GPUで処理を実行 35
36.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) cudaMemcpy(A_d,A_h,sizeof(float)*N,hostToDevise) dim3 Dg(2,1,1) Db(512,1,1) vec_add<<Dg,Db>>(A_d,B_d,C_d) 36
37.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) cudaMemcpy(A_d,A_h,sizeof(float)*N,hostToDevise) dim3 Dg(2,1,1) Db(512,1,1) vec_add<<Dg,Db>>(A_d,B_d,C_d) 4. 結果をデバイスメモリからホストメモリにコピー 37
38.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) cudaMemcpy(A_d,A_h,sizeof(float)*N,hostToDevise) dim3 Dg(2,1,1) Db(512,1,1) vec_add<<Dg,Db>>(A_d,B_d,C_d) cudaMemcpy(C_h,C_d,sizeof(float)*N,deviseToHost) 38
39.
実際のCUDAコード float *A_d, *B_d,
*C_d cudaMalloc(&A_d,sizeof(float)*N) cudaMemcpy(A_d,A_h,sizeof(float)*N,hostToDevise) dim3 Dg(2,1,1) Db(512,1,1) vec_add<<<Dg,Db>>>(A_d,B_d,C_d) cudaMemcpy(C_h,C_d,sizeof(float)*N,deviseToHost) dim3って何? vec_addの中身は? 39
40.
CUDAにおけるスレッド管理 • グリッドとブロックという概念を導入し、3次元的にス
レッドを管理している。 グリッド ブロック ブロック ブロック ブロック 40
41.
CUDAにおけるスレッド管理 • グリッドとブロックという概念を導入し、3次元的にス
レッドを管理している。 グリッド ブロック ブロック ブロック ブロック • dim3変数はグリッド、ブロックのサイズを指定している。 o Dg(2,1,1) Db(512,1,1) 41
42.
カーネル関数 __global__ void vec_add(float
*A_d, *B_d, *C_d){ int i = blockDim.x*blockIdx.x + threadIdx.x; C_d[i] = A_d[i] + B_d[i]; } 42
43.
カーネル関数 __global__ void vec_add(float
*A_d, *B_d, *C_d){ int i = blockDim.x*blockIdx.x + threadIdx.x; C_d[i] = A_d[i] + B_d[i]; } ビルトイン変数 カーネル関数内で宣言せずに使用できる変数 blockDim : blockの大きさの情報 blockIdx : 何番目のblockを参照しているか threadIdx : 何番目のthreadを参照しているか 43
44.
カーネル関数 __global__ void vec_add(float
*A_d, *B_d, *C_d){ int i = blockDim.x*blockIdx.x + threadIdx.x; C_d[i] = A_d[i] + B_d[i]; } ビルトイン変数 カーネル関数内で宣言せずに使用できる変数 blockDim : blockの大きさの情報 blockIdx : 何番目のblockを参照しているか threadIdx : 何番目のthreadを参照しているか 各スレッドと配列の要素を結びつけている。 44
45.
CUDA4.1 • LLVMをベースにしたコンパイラを導入
o 最大で10%の速度アップ • 自動でパフォーマンス測定を行うVisual Profiler • CUDA_GDB o カーネル関数におけるデバッグ、アサート • CUDA_MEMCHECK o カーネル関数におけるアウトオブバウンズを検知 45
Download