SlideShare a Scribd company logo
Akira Naruse, Developer Technology, NVIDIA
アプリケーション開発を加速する
GPUライブラリ
GPUCPU
GPUコンピューティング
Low latency + High throughput
アプリケーション実行
アプリケーション・コード
GPU
CPU
並列部分を
GPUで実行
計算の
重い部分
逐次部分は
CPU上で実行
Do i=1,N
End do
アプリケーションをGPUで加速する方法
Application
Library
GPU対応ライブラリにチェンジ
簡単に開始
CUDAOpenACC
主要処理をCUDAで記述
高い自由度
既存コードにディレクティブを挿入
簡単に加速
ソフトウェア階層
GPU
(Tesla, Quadro, GeForce, Tegra)
CUDA Runtime/Driver
Application
Third-party
Libraries
NVIDIA
Libraries
OpenACC
Runtime
GPU対応のライブラリ (一部)
NVIDIA cuBLAS NVIDIA cuRAND
NVIDIA cuSPARSE
Vector Signal
Image Processing
GPU Accelerated
Linear Algebra
NVIDIA cuFFT
C++ STL Features
for CUDA
Sparse Linear
AlgebraIMSL Library
Matrix Algebra on
GPU and Multicore
NVIDIA cuDNN
NVIDIA AmgX
NVIDIAライブラリ
cuFFT フーリエ変換
cuBLAS 行列演算(密行列)
cuSPARSE 行列演算(疎行列)
cuSOLVER 行列ソルバ (y=Ax)
cuDNN ディープラーニング
cuRAND 乱数生成
Thrust C++テンプレート(STLベース)
NPP 画像処理プリミティブ
ライブラリのインタフェース
デバイスAPI
GPUカーネルから呼び出すAPI
ホストAPI
ホスト(CPU)から呼び出すAPI (今回は主にこちらを説明)
XTインターフェース
マルチGPU: 自動対応、複数GPUへの明示的な処理振り分けは不要
明示的なデータ転送は不要: 必要なデバイスメモリはライブラリが確保
Out-of-core: GPUメモリに収まらない問題に対応
オーバーラップ: カーネル実行とデータ転送を同時実行
NVIDIAライブラリ(ホストAPI)の典型的な使い方
1. ハンドルの作成
2. デバイスメモリの確保
3. 入力データの転送 (ホスト  デバイス)
4. 入力データ形式の変換
5. 実行
6. 出力データ形式の変換
7. 出力データの転送 (デバイス  ホスト)
8. デバイスメモリの解放
9. ハンドルの削除
ハンドルの作成
ハンドル: ライブラリの各種設定・情報を格納するオブジェクト
ライブラリ操作・実行は全てハンドル経由で実施 (第1引数がハンドル)
cublasHandle_t handle;
cublasCreate( & handle );
cuBLAS
cusparseHandle_t handle;
cusparseCreate( & handle );
cuSPARSE
cufftHandle plan;
cufftHandle1d( & pla
cuFFT
curandGenerator_t gen;
curandCreateGenerator( & gen, … );
cuRAND
cudnnHandle handle;
cudnnCreate( & handle, … );
cuDNN
デバイスメモリの確保
cudaMalloc()
ライブラリ計算の入出力に使われる領域は、通常のCUDA APIで確保
ライブラリ内部のワーキングメモリは自動で確保される
cudaMallocManaged()
Unified Memoryも使用可能 (プロトタイプ開発に最適)
明示的なデータ転送は不要
XTインタフェース: 専用メモリ確保ルーチン
(例) cuFFT: cufftXtMalloc()
データ転送
cudaMemcpy()
入力データ、出力データの転送は、通常CUDA APIで実施
ライブラリに専用データ転送ルーチンがある場合は、それを使用
cuBLAS(ベクトル): cublasSetVector(), cublasGetVector()
cuBLAS(行列): cublasSetMatrix(), cublasGetMatrix()
データ形式の変換
ホストライブラリとGPUライブラリで、対応データ形式が異なる場
合に必要
行列(2次元配列): 行優先  列優先
疎行列: 独自?  CSR, BSR
cuSPARSE: 疎行列データ形式の変換ルーチン
FFT(周波数空間): 独自?  cuFFT形式
データ形式変換は用途に応じてホスト上 or GPU上で
実行
計算をGPUにオフロード
cuBLAS: cublasSgemm( handle, … )
cuSPARSE: cusparseScsrmv( handle, … )
cuSOLVER: cusolverDnSgetrf( handle, … )
cuFFT: cufftExecR2C( plan, … )
cuDNN: cudnnConvolutaionForward( handle, … )
cuRAND: curandGenerateUniform( gen, … )
cuBLAS適用例
for ( int j = 0; j < N; j++ ) {
for ( int i = 0; i < M; i++ ) {
for ( int k = 0; k < K; k++ ) {
C[ j*ldc + i ] = A[ k*lda + i ] * B[ j*ldb + k ];
}
}
}
行列乗算
C = A x B
CA
B
M
N
K
K
cuBLAS適用例
行列乗算(BLAS)
C = A x B
CA
B
M
N
K
K
sgemm( ‘n’, ‘n’, M, N, K, 1.0, A, lda, B, ldb, 0.0, C, ldc );
cuBLAS適用例
cublasCreate( &handle );
cudaMalloc( &d_A, sizeof(float) * M * K );
cudaMalloc( &d_B, sizeof(float) * K * N );
cudaMalloc( &d_C, sizeof(float) * M * N );
cublasSetMatrix( M, K, sizeof(float), A, lda, d_A, lda );
cublasSetMatrix( K, N, sizeof(float), B, ldb, d_B, ldb );
cublasSgemm( handle, ‘n’, M, N, K, 1.0, A, lda, B, ldb, 0.0, C, ldc );
cublasSetMatrix( M, N, sizeof(float), d_C, ldc, C, ldc );
ハンドルの作成
デバイスメモリの確保
入力データの転送
出力データの転送
実行
cuBLAS適用例
前処理 + 行列乗算 + 後処理
for ( k = 0; k < K; k++ )
for ( i = 0; i < M; i++ )
A[ k*lda + i ] = … ;
sgemm( ‘n’, ‘n’, M, N, K, 1.0, A, lda, B, ldb, 0.0, C, ldc );
for ( j = 0; j < N; j++ )
for ( i = 0; i < M; i++ )
C[ j*ldc + i ] = … ;
CUDAとの併用
…
cublasSetMatrix( M, K, sizeof(float), A, lda, d_A, lda );
cublasSetMatrix( K, N, sizeof(float), B, ldb, d_B, ldb );
kernel_update_A<<< … >>>( d_A, lda, … );
cublasSgemm( handle, ‘n’, M, N, K, 1.0, A, lda, B, ldb, 0.0, C, ldc );
kernel_update_C<<< … >>>( d_C, ldc, … );
cublasSetMatrix( M, N, sizeof(float), d_C, ldc, C, ldc );
ライブラリ
CUDAカーネル
CUDAカーネル
OpenACCとの併用
#pragma acc data copyin(A, B) copyout(C)
{
#pragma acc parallel
for ( k = 0; k < K; k++ )
for ( i = 0; i < M; i++ )
A[ k*lda + i ] = … ;
#pragma acc host_data use_device(A, B, C)
{ cublasSgemm( handle, ‘n’, M, N, K, 1.0, A, lda, B, ldb, 0.0, C, ldc ); }
#pragma acc parallel
for ( j = 0; j < N; j++ )
for ( i = 0; i < M; i++ )
C[ j*ldc + i ] = … ;
}
ライブラリ
OpenACC
OpenACC
非同期実行、オーバーラップ
CUDAストリーム
cublasCreate( & handle );
cudaStreamCreate( & stream_0, … );
cudaStreamCreate( & stream_1, … );
cublasSetStream( handle, stream_0 );
cublasSgemm( handle, … );
cublasSetStream( handle, stream_1 );
cublasSgemm( handle, … );
ストリーム0
ストリーム1
1スレッド/2GPU: OK
2スレッド/2GPU: OK
マルチスレッド、マルチGPU
cudaSetDevice( 0 );
cusparseCreate( & handle );
cusparseScsrmv…( handle, … );
cudaSetDevice( 1 );
cusparseCreate( & handle );
cusparseScsrmv…( handle, … )
スレッド0 スレッド1
cudaSetDevice( 0 );
cusparseCreate( & handle_0 );
cudaSetDevice( 1 );
cusparseCreate( & handle_1 );
cusparseScsrmv…( handle_0, … );
cusparseScsrmv…( handle_1, … );
2スレッド/1GPU: OK
ライブラリハンドルを複数スレッドで
共有可能 (スレッドセーフ)
1072: アプリケーション開発を加速するCUDAライブラリ
cuFFT: FFTライブラリ
複素数と実数(C2C, R2C, C2R)
単精度(32-bit)、倍精度(64-bit)
1D,2D,3D変換
バッチ変換 (複数のfftを同時実行)
データ形式はfftw互換
fftwからの移行ツール
NVIDIA cuFFT
cuFFT: FFTライブラリ
XTインタフェース対応: cufftXT API
最大4GPUs
Callbackルーチン
前処理と後処理をCallbackとして設定
NVIDIA cuFFT
Read
input
Convert
to 32-bit
Write
32-bit
Read
Perform
FFT
Write
Read
FFT
output
Convert
to 8-bit
Write 8-
bit data
Read
input
Convert
to 32-bit
Perform
FFT
Convert
to 8-bit
Write 8-
bit data
Callback無: 3カーネル
Callback有: 1カーネル
cuFFT: 最大700 GFLOPS
0
100
200
300
400
500
600
700
800
1 1,000 1,000,000
GFLOPS
Transform Size
単精度(32bit)
Powers of 2
Powers of 3
Powers of 5
Powers of 7
0
50
100
150
200
250
300
350
1 1,000 1,000,000
GFLOPS
Transform Size
倍精度(64bit)
Performance may vary based on OS and software
versions, and motherboard configuration
• cuFFT 7.0 on K40m, Base clocks, ECC ON
• Batched transforms on 28M-33M total elements, input and output data on device
• Excludes time to create cuFFT “plans”
1D複素数バッチ FFTs
(信号処理, 2D/3D FFTのコンポーネント)
cuFFT: 性能改善 (CUDA 6.5  7.0)
1x
2x
3x
4x
5x
0 20 40 60 80 100 120 140
Speedup
Transform Size
1D 単精度 Complex-to-Complex バッチFFTs
Size = 23 Size = 66Size = 31
Size = 110
Size = 121
Performance may vary based on OS and software
versions, and motherboard configuration
• cuFFT 6.5 and 7.0 on K20m, ECC ON
• Batched transforms on 32M total elements, input and output data on device
• Excludes time to create cuFFT “plans”
cuBLAS: 密行列演算ライブラリ
全てのBLAS関数 + BLASライク関数
全152 BLAS関数をサポート
単精度と倍精度、実数と複素数: S,D,C,Z
ホストAPIとデバイスAPI
バッチ関数 (多数の小さな問題)
gemmBatched(), trsmBatched(), matinvBatched()
XTインタフェース: cublasXt API (Level-3 BLAS)
マルチGPUs
Out-of-core (デバイスメモリ容量を超えるサイズの行列)
“Drop-in” (CPU BLASをそのまま置き換え)
NVIDIA cuBLAS
cuBLAS: 密行列演算ライブラリ
ディープラーニング向け機能強化
cublasSgemmEx()
演算は32-bit(FP32)、入出力は8-bit(int8)/16bit(FP16)
より大きな行列をGPUメモリに常駐可能
cublasHgemm()
FP16用の行列積 (演算と入出力、全てFP16)
Pascalから利用可能 (現在はTegra X1のみ利用可能)
NVIDIA cuBLAS
cuBLAS: 単精度:>3 TF, 倍精度:>1 TF
0
500
1,000
1,500
2,000
2,500
3,000
3,500
SGEMM
SSYMM
STRSM
SSYRK
CGEMM
CSYMM
CTRSM
CSYRK
DGEMM
DSYMM
DTRSM
DSYRK
ZGEMM
ZSYMM
ZTRSM
ZSYRK
Single Single Complex Double Double Complex
GFLOPS
• cuBLAS 7.0 on K40m, Base clocks, ECC ON, input and output data on device
• m=n=k=4096, transpose=no, side=right, fill=lower
Performance may vary based on OS and software
versions, and motherboard configuration
cuBLAS-XT: >12 TF (3 GPUs on 1ノード)
0
2,000
4,000
6,000
8,000
10,000
12,000
14,000
SGEMM
SSYRK
STRSM
CGEMM
CSYRK
DGEMM
DSYRK
DTRSM
ZGEMM
ZSYRK
ZTRSM
Single Single
Complex
Double Double
Complex
GFLOPS
1xK80
3xK80
• cuBLAS 7.0 on K80, Base clocks, ECC ON
• input and output data on host, m=n=k=32768, transpose=no
Performance may vary based on OS and software
versions, and motherboard configuration
cuSPARSE: 疎行列演算ライブラリ
疎行列用BLAS
Level-2: 疎行列 x ベクトル
Level-3: 疎行列 x 密行列
様々な行列格納フォーマット
COO, CSR, CSC, ELL, HYB, BSR, BSRX, Dense
フォーマット変換関数: (例) coo2csr(), csr2dense()
1.0
2.0
3.0
4.0
y1
y2
y3
y4
𝛼 + 𝛽
1.0
6.0
4.0
7.0
3.02.0
5.0
y1
y2
y3
y4
NVIDIA cuSPARSE
cuSPARSE: 疎行列演算ライブラリ
自然言語処理向け機能拡張
密行列 x 疎ベクトル
cusparse<T>gemvi()
y = α ∗ op(A) ∗ x + β ∗ y
-
2
-
-
1
y1
y2
y3
α + β
y1
y2
y3
A11
A21
A31
A12
A22
A32
A13
A23
A33
A14
A24
A34
A15
A25
A35
密行列密ベクトル 疎ベクトル
(例) テキスト内の単語の出現頻度
NVIDIA cuSPARSE
cuSPARSE: 性能比較
0x
1x
2x
3x
4x
5x
SpeedupoverMKL
疎行列 x 密ベクトル (SpMV)
• Average of S/C/D/Z routines
• cuSPARSE 7.0 on K40m, Base clocks, ECC ON, input and output data on device
• MKL 11.0.4 on Intel Xeon Haswell single-socket 16-core E5-2698 v3 @ 2.3GHz, 3.6GHz Turbo
• Matrices obtained from: http://www.cise.ufl.edu/research/sparse/matrices/
Performance may vary based on OS and software
versions, and motherboard configuration
前処理付きCG法とグラフ・カラーリング
Input
matrix
Analysis and
ILU(0)
(cuSPARSE)
Solve
(cuSPARSE)
Input
matrix
Reorder
matrix
(Thrust)
Analysis and
ILU(0)
(cuSPARSE)
Solve
(cuSPARSE)
Graph
coloring
(cuSPARSE)
カラーリングとリオーダーリングにより
並列性を抽出
並列性向上により性能UP
入力行列の特性が悪いと
(並列性抽出が難しいと)性能が上がらない
cuSPARSE: 不完全LU分解の高速化
20x 28x 9x
0x
1x
2x
3x
4x
5x
6x
Speedup
• cuSPARSE 7.0 on K40c
• Matrices obtained from: http://www.cise.ufl.edu/research/sparse/matrices/
Performance may vary based on OS and software
versions, and motherboard configuration
グラフカラーリングによる不完全LU分解(ILU0)の高速化
Full results at: research.nvidia.com/publication/parallel-graph-coloring-applications-incomplete-lu-factorization-gpu
cuSOLVER: 行列ソルバー
密な線形方程式系、疎な線形方程式系、固有値問題を
解くためのサブルーチン
3つのAPI:
Dense: cuSolverDN
Sparse: cuSolverSP
Refactorization: cuSolverRN
cuSOLVER: Dense
LAPACK(密行列直接ソルバーライブラリ)のサブセット
コレスキー分解: potrf(), potrs()
LU分解: getrf(), getrs()
QR分解: geqrf(), ormqr()
Bunch-Kaufman分解: sytrf()
特異値分解: gebrd(), gesvd()
適用分野
コンピュータ・ビジョン、最適化、CFD
cuSOLVER: Sparse
スパース直接法ソルバー
Solve 𝐴𝑥 = 𝑏: csrlsvlu(), csrlsvqr(), csrlsvchol()
Solve min |𝐴𝑥 − 𝑏|: csrsqvqr()
Solve 𝐴𝑥 = 𝜆𝑥: csreigvsi()
適用分野
Well models in Oil & Gas
非線形ニュートン法
cuSOLVER: Refactorization
LU分解ベースのスパース直接法
疎特性が同じ行列を繰り返し解く場合に有用
適用分野:
化学反応流計算
燃焼シミュレーション
SPICE
cuSOLVER: Dense性能 (vs. MKL)
0
200
400
600
800
1,000
1,200
1,400
1,600
1,800
SPOTRF
DPOTRF
CPOTRF
ZPOTRF
SGETRF
DGETRF
CGETRF
ZGETRF
SGEQRF
DGEQRF
CGEQRF
ZGEQRF
Cholesky
Factorization
LU
Factorization
QR
Factorization
GFLOPS
cuSOLVER
MKL
Performance may vary based on OS and software
versions, and motherboard configuration
• cuSOLVER 7.0 on K40c, ECC ON, M=N=4096
• MKL 11.0.4 on Intel Xeon Haswell 14-core E5-2697 v3 @ 3.6GHz
cuSOLVER: Sparse性能
2.0x
11.3x
1.9x
1.4x 1.2x
0x
2x
4x
6x
8x
10x
12x
1138_bus Chem97ZtZ Muu ex9 nasa1824
SpeedupoverCPU
Analysis, Factorization and Solve
• cuSOLVER 7.0 on K40c, ECC ON
• SuiteSparse v4.4 on Intel Xeon Haswell 14-core E5-2697 v3 @ 3.6GHz
• Matrices obtained from: http://www.cise.ufl.edu/research/sparse/matrices/
Performance may vary based on OS and software
versions, and motherboard configuration
cuDNN
ディープラーニング用ライブラリ
DLのトレーニングに最適
畳み込み計算を高速化 (2D,3D)
プーリング、ソフトマックス、活性化にも対応
主要DLプラットフォームが採用
Caffe, Torch, Theano
NVIDIA cuDNN
cuBLAS
LeNet5 [LeCun et al.,1998]
コンボリューション層 フルコネクション層
cuDNN: APIs
Convolutions
cudnnConvolutionForward()
cudnnConvolutionBackward[Bias|Filter|Data]()
Activation
cudnnActivationForward()
cudnnActivationBackward()
Pooling
cudnnPoolingForward()
cudnnPoolingBackward()
Softmax
cudnnSoftmaxForward()
cudnnSoftmaxBackward()
…
NVIDIA cuDNN
cuDNN: 性能
1.0x 1.0x
1.6x
1.2x
Caffe
(GoogLeNet)
Torch
(OverFeat)
Baseline (GPU) With cuDNN
2.5M
18M
23M
43M
0
10
20
30
40
50
16 Core CPU GTX Titan Titan Black
cuDNN v1
Titan X
cuDNN v2
MillionsofImages
Images Trained Per Day (Caffe AlexNet)
E5-2698 v3 @ 2.3GHz
AlexNet [A. Krizhevsky et al.,2012]
cuDNN: v3
より大きなモデル
FP16ストレージ
学習の高速化
Maxwell向け最適化
2D畳み込み演算の高速化
FFTコンボリューション対応
アルゴリズム選択: GEMM, DIRECT, FFT
https://developer.nvidia.com/cuDNN
0.0x
0.5x
1.0x
1.5x
2.0x
2.5x
Alexnet OverFeat VGG
cuDNN v2  cuDNN v3
学習性能: 最大2倍
cuDNN 3 performance vs. previous version on Ubuntu 14.04 LTS with
NVIDIA® GeForce® TITAN X and Intel® Core™ i7-4930K @ 3.40GHz
cuRAND: 乱数生成ライブラリ
ホストAPI: 多数の乱数をデバイスメモリ上に生成
デバイスAPI: スレッド毎に乱数を生成
分布タイプ: uniform, normal, log-normal, poisson
乱数タイプ:
NVIDIA cuRAND
擬似乱数(Pseudo-random)
XORWOW
MRG32K3A
MTGP32
PHILOX4_32_10
MT19937
準乱数(Quasi-random)
SOBOL32
SCRAMBLED_SOBOL32
SOBOL64
SCRAMBLED_SOBOL64
Mersenne Twister 19937
cuRAND: 高性能
0
2
4
6
8
10
12
14
16
18
XORWOW Philox MRG32k3a MTGP32 Sobol32
Scrambled
Sobol64
Scrambled
Pseudo-random Quasi-random
Gsamples/sec
Uniform Distribution Normal Distribution Log-Normal Distribution
• cuRAND 7.0 on K40m, Base clocks, ECC ON, double-precision input and output data on device
Performance may vary based on OS and software
versions, and motherboard configuration
cuRAND: 50倍以上高速 (vs. MKL)
0
2
4
6
8
10
12
14
16
Sobol32 MRG32k3a Sobol32 MRG32k3a Sobol32 MRG32k3a
Uniform Distribution Normal Distribution Log-Normal Distribution
GSamples/sec
cuRAND
MKL
• cuRAND 7.0 on K40m, Base clocks, ECC ON, double-precision input and output data on device
• MKL 11.0.1 on Intel Xeon Haswell single-socket 16-core E5-2698 v3 @ 2.3GHz, 3.6GHz Turbo
Performance may vary based on OS and software
versions, and motherboard configuration
Thrust: CUDA C++ 並列テンプレートライブラリ
C++ STLライクなテンプレートライブラリ
迅速なアプリ開発、プロトタイプ開発
GPU最適化な並列アルゴリズム
sort, reduce, scan, 他
ポータブル: CPUでも利用可能
OpenMP, TBB
GitHub: thrust.github.com
C++ STL Features
for CUDA
Thrust: 性能改善 (CUDA 6.5  7)
 sort: 1.1–1.8倍
(ユーザ定義型は3倍)
 merge: 2倍
 scan: 1.15倍
 reduce_by_key: 1.25倍
thrust::count_if(thrust::cuda::par.on(stream1), text, text+n, myFunc());
New in
CUDA 7.0
1.7x 1.8x
1.2x
1.1x
1.3x
1.1x
0.0x
0.5x
1.0x
1.5x
2.0x
char short int long float double
Speedup
Sort (32M samples)
• CUDA 7.0 and 6.5 on K40m, ECC ON, input and output data on device
• Performance may vary based on OS and software versions, and motherboard
configuration
CUDAストリーム対応
Thank you

More Related Content

PDF
CUDAプログラミング入門
PDF
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
PDF
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
PDF
いまさら聞けない!CUDA高速化入門
PDF
1076: CUDAデバッグ・プロファイリング入門
PDF
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
PDF
Hopper アーキテクチャで、変わること、変わらないこと
PDF
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜
CUDAプログラミング入門
2015年度先端GPGPUシミュレーション工学特論 第5回 GPUのメモリ階層の詳細 (様々なメモリの利用)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
いまさら聞けない!CUDA高速化入門
1076: CUDAデバッグ・プロファイリング入門
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
Hopper アーキテクチャで、変わること、変わらないこと
SSII2021 [TS2] 深層強化学習 〜 強化学習の基礎から応用まで 〜

What's hot (20)

PDF
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
PDF
プログラムを高速化する話Ⅱ 〜GPGPU編〜
PDF
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
PDF
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
PDF
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
PDF
TensorFlow XLAは、 中で何をやっているのか?
PDF
GPU と PYTHON と、それから最近の NVIDIA
PDF
グラフニューラルネットワーク入門
PDF
2015年度GPGPU実践プログラミング 第7回 総和計算
PDF
C#, C/CLI と CUDAによる画像処理ことはじめ
PDF
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
PDF
TVM の紹介
PDF
Transformer メタサーベイ
PDF
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
PDF
About GStreamer 1.0 application development for beginners
PDF
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
PDF
1070: CUDA プログラミング入門
PDF
分散学習のあれこれ~データパラレルからモデルパラレルまで~
PDF
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
PDF
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
プログラムを高速化する話Ⅱ 〜GPGPU編〜
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
TensorFlow XLAは、 中で何をやっているのか?
GPU と PYTHON と、それから最近の NVIDIA
グラフニューラルネットワーク入門
2015年度GPGPU実践プログラミング 第7回 総和計算
C#, C/CLI と CUDAによる画像処理ことはじめ
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
TVM の紹介
Transformer メタサーベイ
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
About GStreamer 1.0 application development for beginners
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
1070: CUDA プログラミング入門
分散学習のあれこれ~データパラレルからモデルパラレルまで~
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
Ad

Similar to 1072: アプリケーション開発を加速するCUDAライブラリ (20)

PDF
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
PDF
200625material naruse
PDF
第12回 配信講義 計算科学技術特論B(2022)
KEY
NVIDIA Japan Seminar 2012
PPTX
2014 11-20 Machine Learning with Apache Spark 勉強会資料
PDF
20180920_DBTS_PGStrom_JP
PDF
20190625 OpenACC 講習会 第3部
PDF
20171220_hbstudy80_pgstrom
PDF
C base design methodology with s dx and xilinx ml
PDF
Synthesijer.Scala (PROSYM 2015)
PPT
HandlerSocket plugin for MySQL
PDF
Maxwell と Java CUDAプログラミング
KEY
Web Operations and Perl kansai.pm#14
PDF
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
PDF
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
PPTX
PBL1-v1-008j.pptx
PDF
x86とコンテキストスイッチ
PPTX
CAメインフレーム システムリソース削減に貢献する製品について
PDF
コンピューティングとJava~なにわTECH道
PDF
20161121 open hyperscale#6
CMSI計算科学技術特論B(14) OpenACC・CUDAによるGPUコンピューティング
200625material naruse
第12回 配信講義 計算科学技術特論B(2022)
NVIDIA Japan Seminar 2012
2014 11-20 Machine Learning with Apache Spark 勉強会資料
20180920_DBTS_PGStrom_JP
20190625 OpenACC 講習会 第3部
20171220_hbstudy80_pgstrom
C base design methodology with s dx and xilinx ml
Synthesijer.Scala (PROSYM 2015)
HandlerSocket plugin for MySQL
Maxwell と Java CUDAプログラミング
Web Operations and Perl kansai.pm#14
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
PBL1-v1-008j.pptx
x86とコンテキストスイッチ
CAメインフレーム システムリソース削減に貢献する製品について
コンピューティングとJava~なにわTECH道
20161121 open hyperscale#6
Ad

More from NVIDIA Japan (20)

PDF
HPC 的に H100 は魅力的な GPU なのか?
PDF
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
PDF
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
PDF
20221021_JP5.0.2-Webinar-JP_Final.pdf
PDF
開発者が語る NVIDIA cuQuantum SDK
PDF
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
PDF
NVIDIA HPC ソフトウエア斜め読み
PDF
HPC+AI ってよく聞くけど結局なんなの
PDF
Magnum IO GPUDirect Storage 最新情報
PDF
データ爆発時代のネットワークインフラ
PDF
GTC November 2021 – テレコム関連アップデート サマリー
PDF
テレコムのビッグデータ解析 & AI サイバーセキュリティ
PDF
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
PDF
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
PDF
2020年10月29日 Jetson活用によるAI教育
PDF
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
PDF
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
PDF
Jetson Xavier NX クラウドネイティブをエッジに
PDF
GTC 2020 発表内容まとめ
PDF
NVIDIA Jetson導入事例ご紹介
HPC 的に H100 は魅力的な GPU なのか?
NVIDIA cuQuantum SDK による量子回路シミュレーターの高速化
Physics-ML のためのフレームワーク NVIDIA Modulus 最新事情
20221021_JP5.0.2-Webinar-JP_Final.pdf
開発者が語る NVIDIA cuQuantum SDK
NVIDIA Modulus: Physics ML 開発のためのフレームワーク
NVIDIA HPC ソフトウエア斜め読み
HPC+AI ってよく聞くけど結局なんなの
Magnum IO GPUDirect Storage 最新情報
データ爆発時代のネットワークインフラ
GTC November 2021 – テレコム関連アップデート サマリー
テレコムのビッグデータ解析 & AI サイバーセキュリティ
必見!絶対におすすめの通信業界セッション 5 つ ~秋の GTC 2020~
2020年10月29日 プロフェッショナルAI×Roboticsエンジニアへのロードマップ
2020年10月29日 Jetson活用によるAI教育
2020年10月29日 Jetson Nano 2GBで始めるAI x Robotics教育
COVID-19 研究・対策に活用可能な NVIDIA ソフトウェアと関連情報
Jetson Xavier NX クラウドネイティブをエッジに
GTC 2020 発表内容まとめ
NVIDIA Jetson導入事例ご紹介

1072: アプリケーション開発を加速するCUDAライブラリ