SlideShare a Scribd company logo
第15回 GPGPU開発環境
(OpenCL)
長岡技術科学大学 電気電子情報工学専攻 出川智啓
計算機名称 アクセラレータ GFLOPS/W 消費電力[kW]
1 Shoubu PEZY‐SC 7.03 50.32
2 TSUBAME‐KFC NVIDIA Tesla K80 5.33 51.13
3 ASUS ESC4000  AMD FirePro S9150 5.27 57.15
4 Sugon Cluster  NVIDIA Tesla K80 4.78 65.00
5 Xstream NVIDIA Tesla K80 4.11 190.0
6 Inspur TS10000 NVIDIA Tesla K40 3.86 58.00
7 Inspur TS10000 NVIDIA Tesla K40 3.78 110.0
8 Inspur TS10000 NVIDIA Tesla K40 3.78 110.0
9 Inspur TS10000 NVIDIA Tesla K40 3.78 110.0
10 Inspur TS10000 NVIDIA Tesla K40 3.78 110.0
Green500(2015, Nov.)
 TOP3の計算機がそれぞれ異なるアクセラレータを搭載
 インターネットのサービス提供に利用されてる(と思われ
る)計算機が大量にランクイン
GPGPU実践基礎工学2 2015/12/16
http://www.green500.org/lists/green201511
今回の内容
GPGPU実践基礎工学
 OpenCL
 背景
 OpenCLの仕様
 grouseで利用できるOpenCL環境の確認
 grouseのOpenCL環境から利用できるデバイスの確認
 サンプルプログラム
3 2015/12/16
OpenCLとは
 Open Computing Language
 不均一な並列環境向けの標準化フレームワーク
 ロイヤリティ不要のオープンスタンダード
 処理するハードウェアに依存しない
 CPU, GPU, Cell等のプロセッサで動作
 統一されたAPIによる制御が可能
 OpenCL Working Groupによって策定
 Appleにより提案
 AMDが自社GPUの標準開発環境として採用
GPGPU実践基礎工学4 2015/12/16
OpenCLが登場した背景
GPGPU実践基礎工学
 均一な計算機環境から不均一な計算機環境への移行
 マルチコアCPU
 CPU+GPU
 Cell/B.E.
 計算機環境の多様化
 ソフトウェアの移植が困難
 ハードウェア構造,命令構文の違い
 ソフトウェア・ハードウェアの変更と移植性の両立
 ソフトウェアの移植性を維持
 ハードウェアの変更への対応
 プロセッサの種類に依存しない開発環境
5 2015/12/16
OpenCLの仕様
GPGPU実践基礎工学
 ハードウェアの抽象化
 制御用プロセッサ+演算用プロセッサ
 CPU(1コア)+CPU(その他のコア)
 CPU+GPU
 PPE+SPE (Cell/B.E.)
 PowerPC Processor Element(PPE)+Synergistic Processor 
Element(SPE) 
 不均一な計算環境を想定
 演算用プロセッサ上でOSが動作していないと想定
 制御用プロセッサから演算プログラムを起動
 演算用プログラムをOpenCL,制御用プログラムをC言語で作成
6 2015/12/16
OpenCLの仕様
GPGPU実践基礎工学
 二つの仕様を標準化
 OpenCL C言語仕様
 演算用プロセッサで動作するプログラムの記述方法
 C言語の拡張
 OpenCLランタイムAPI仕様
 制御用プロセッサが利用するAPI(C言語からの関数呼出)
 OpenCL C言語で作成されたプログラムを呼び出し,演算用プ
ロセッサで並列実行
7 2015/12/16
OpenCLプログラムの構成
GPGPU実践基礎工学
 ホストプログラム(拡張子は.cpp)
 OpenCLランタイムAPIを利用してC/C++言語で記述
 カーネル(拡張子は.cl)
 OpenCLデバイスで動作するプログラム
 OpenCL C言語で記述
OpenCLデバイス ホスト
CPU
メモリ
CUDA 
Core
メモリ
ホストプログラムカーネル 呼出
8 2015/12/16
OpenCLプログラムの構成
GPGPU実践基礎工学
 ホストプログラムからカーネルを読み込んで実行
 オンラインコンパイル方式を採用
 プログラム実行時にOpenCLランタイムライブラリがカーネルを
コンパイル,実行(Just in Timeコンパイル)
 デバイスに依存せずにプログラムを配布可能
ホストプログラム カーネル
OpenCLランタイムライブラリ
ホスト OpenCLデバイス
コンパイル
カーネル
読込
実行
9 2015/12/16
実行
OpenCL環境の確認
 使用(ログイン)している計算機環境でOpenCLが有効に
なっているかの確認
 grouseにはNVIDIA社が提供するOpenCL環境が存在
 コンパイル
 nvcc ‐lOpenCL ソースファイル名.cpp
 ソースファイルの拡張子は.cuではなく.cpp
2015/12/16GPGPU実践基礎工学10
$ ls /etc/OpenCL/vendors
nvidia.icd
OpenCLから利用できるデバイスの確認
GPGPU実践基礎工学11
 プラットフォーム
 複数の会社がOpenCL(プラットフォーム)を提供
 AMD, Apple, IBM, Intel, NVIDIAなど(約10社が提供)
 複数のプラットフォームをインストール可能
 利用している計算機に複数のプラットフォームがあれば,その中から
一つを指定
 デバイス
 プラットフォームで利用するデバイスを指定
 指定したプラットフォームから利用できるデバイスと利用できないデ
バイスがある
 grouseで利用するNVIDIAのOpenCLプラットフォームではCPUが利
用できない
2015/12/16
OpenCLから利用できるデバイスの確認
2015/12/16GPGPU実践基礎工学12
#include<stdio.h>
#include<CL/cl.h>
#define MAX_PLATFORMS (1)
#define MAX_DEVICES (4)
#define INFO_SIZE (4096)
int main(){
cl_uint num_platform, num_device;
cl_platform_id platform_ids[MAX_PLATFORMS];
cl_device_id device_ids[MAX_DEVICES];
char  device_info[INFO_SIZE];
clGetPlatformIDs(MAX_PLATFORMS, platform_ids, &num_platform);
printf("number of platforms : %d ¥n", (int)num_platform);
for(int pID=0; pID<(int)num_platform; pID++){
printf("platform id : %d¥n", pID);
clGetDeviceIDs(platform_ids[pID], CL_DEVICE_TYPE_ALL, MAX_DEVICES, device_ids, &num_device);
printf("device type all¥t : %d ¥n", num_device);
for(int dID=0; dID<(int)num_device; dID++){
printf("device id : %d¥n", dID);
clGetDeviceInfo(device_ids[dID], CL_DEVICE_NAME, INFO_SIZE, device_info, NULL);
printf("device name¥t : %s ¥n", device_info);
clGetDeviceInfo(device_ids[dID], CL_DEVICE_VENDOR, INFO_SIZE, device_info, NULL);
printf("device vendor¥t : %s ¥n", device_info);
}
}
return 0;
} opencl_device.cpp
OpenCLから利用できるデバイスの確認
GPGPU実践基礎工学13
 clGetPlatformIDs
 利用できるOpenCLのプラットフォーム(環境)数を取得
 clGetPlatformIDs(取得するプラットフォームの上限,プラットフォーム情報,
プラットフォーム数);
 clGetDeviceIDs
 指定のOpenCLプラットフォームから利用できるデバイスの数を取得
 clGetDeviceIDs(プラットフォームID, デバイスの種類,
取得するデバイスの上限,デバイス情報,デバイス数);
 clGetDeviceInfo
 プラットフォームから利用できるデバイス数の詳細情報を取得
 clGetDeviceInfo(デバイスID, 取得する情報,保存先のchar型配列のサイズ,
保存先のchar型配列, 取得した文字数);
2015/12/16
OpenCLから利用できるデバイスの確認
GPGPU実践基礎工学14
 実行結果
number of platforms : 1
platform id : 0
device type all  : 4
device id : 0
device name      : Tesla M2050
device vendor    : NVIDIA Corporation
device id : 1
device name      : Tesla M2050
device vendor    : NVIDIA Corporation
device id : 2
device name      : Tesla M2050
device vendor    : NVIDIA Corporation
device id : 3
device name      : Tesla M2050
device vendor    : NVIDIA Corporation
←利用できるプラットフォームは1個
←プラットフォームID0から利用できるデバイスは4個
2015/12/16
プラットフォームID0から利用
できるデバイスの情報
(名前とメーカー)
OpenCLプログラムの決まり事
GPGPU実践基礎工学15
 OpenCLのヘッダをインクルードする
 #include<CL/cl.h>
 OpenCLで利用する変数の型や関数はclで始まる
 例
 cl_uint型
 clGetPlatformIDs()
 コンパイル時にはOpenCLのライブラリへリンクする
 ‐lOpenCLオプションを付与
2015/12/16
ハードウェアモデル
GPGPU実践基礎工学16
 OpenCLデバイスは複数の演算
ユニットから構成
 演算ユニットは複数のプロセッ
シングエレメント(PE)から構成
 GPUとの対応
 OpenCLデバイス = GPU
 演算ユニット = SM
 PE = CUDA Core
OpenCLデバイス
PE PE PEPE
・・・
PE PE PEPE
演算ユニット
PE PE PEPE
PE PE PEPE
演算ユニット
2015/12/16
並列プログラミングモデル
GPGPU実践基礎工学17
 データ並列プログラミング
 タスク並列プログラミングモデル
ホスト
プログラム コマンドキュー
処理
OpenCLデバイス
演算ユニット
演算ユニット
演算ユニット
処
理
処
理
処
理
イ
ン
デ
ッ
ク
ス
空
間
1
2
3
データ並列
実行指示
データ並列
実行
ホスト
プログラム コマンドキュー
OpenCLデバイス
演算ユニット
演算ユニット
演算ユニット
処
理
処
理
処
理
タスク並列
実行指示
タスク並列
実行
処
理
処
理
処
理
インデック
ス空間1
インデック
ス空間1
インデック
ス空間1
2015/12/16
並列プログラミングモデル
GPGPU実践基礎工学18
 データ並列実行時に演算ユニット
とPEに固有のIDを付与
 インデックス空間の展開
 演算ユニットで実行する単位
 ワークグループ
 PEで実行する単位
 ワークアイテム
OpenCLデバイス
PE
PE
PE
演算ユニット
ワークアイテムID 0
ワークアイテムID 1
ワークアイテムID 2
ワークグループID 0
PE
PE
PE
演算ユニット
ワークアイテムID 0
ワークアイテムID 1
ワークアイテムID 2
ワークグループID 1
グローバルアイテム数 6
ローカルアイテム数 3
2015/12/16
メモリモデル
GPGPU実践基礎工学19
 グローバルメモリ
 全てのワークアイテムから読み書きできるメモリ
 コンスタントメモリ
 全てのワークアイテムから読み込みだけができるメモリ
 ローカルメモリ
 ワークグループ内のワークアイテムが共有できるメモリ
 プライベートメモリ
 ワークアイテム専用のメモリ
2015/12/16
メモリモデル
 GPUとの対応
 グローバルメモリ=グローバ
ルメモリ
 コンスタントメモリ=コンスタ
ントメモリ
 ローカルメモリ=共有メモリ
 プライベートメモリ=レジスタ
GPGPU実践基礎工学20
全てのワークアイテム
がデータを共有
ワークグループ内
でデータを共有
コンスタントメモリ
OpenCLデバイス
P P P P
PE PE PE PE
ローカルメモリ
演算ユニット
P P P P
PE PE PE PE
ローカルメモリ
演算ユニット
グローバルメモリ
各ワークアイテムが
個別のデータを保有
2015/12/16
プライベートメモリ
プロセッシング
エレメント
カーネルの作成
GPGPU実践基礎工学21
 関数に修飾子__kernelを付加
 引数となる変数にアドレス修飾子を付加
 グローバルメモリに存在する場合 __global
 コンスタントメモリに存在する場合 __constant
 ローカルメモリに存在する場合 __local
 プライベートメモリに存在する場合 __private
 一つのワークアイテムが実行する内容を記述
 ワークアイテムのIDを取得
 IDを基に並列処理を実行
2015/12/16
ホストコード
2015/12/16GPGPU実践基礎工学22
 カーネルを実行するために大量の下準備が必要
1.実行するプラットフォーム
の特定
2.利用するデバイスの決定*
3.コンテキストの作成
4.コマンドキューの作成
5.メモリオブジェクトの作成*
6.カーネルの読み込み
7.プログラムオブジェクトの
作成
8. カーネルのコンパイル
9. カーネルオブジェクトの
作成
10. カーネル引数の設定
11. コマンドキューへの投入
(カーネルの実行*)
12. メモリオブジェクトから結
果を読み出し*
13. オブジェクトの解放*
*GPUと共通
ベクトル和C=A+Bの計算
 配列A, B, Cで参照する配列要素番号iが同じ
 各スレッドがある配列添字iを処理
 1スレッドが1要素の計算を実行
GPGPU実践基礎工学23 2015/12/16
・・・
・・・
・・・c[i]
a[i]
b[i]
+ + + + + +
スレッド0 スレッド2スレッド1 スレッド3
CUDAの並列化階層と情報の参照
 N=8, <<<2, 4>>>で実行
c[i]
a[i]
b[i]
+ + + + + + + +
gridDim.x=2
blockIdx.x=0 blockIdx.x=1
blockDim.x=4blockDim.x=4threadIdx.x=
0    1   2    3 0    1   2    3
threadIdx.x=
2015/12/16GPGPU実践基礎工学24
i=   0    1   2    3   4    5   6    7
=  blockIdx.x*blockDim.x + threadIdx.x
 CUDA Cと同じ条件で並列実行
c[i]
a[i]
b[i]
+ + + + + + + +
get_num_groups()
get_group_id() get_group_id()
get_local_size()get_local_size()get_local_id()
0    1   2    3 0    1   2    3
get_local_id()
2015/12/16GPGPU実践基礎工学25
i=   0    1   2    3   4    5   6    7
=  get_global_id()
OpenCLの並列化階層と情報の参照
逐次プログラム
2015/12/16GPGPU実践基礎工学26
#include<stdlib.h>
#define N (1024*1024)
#define Nbytes (N*sizeof(float))
void init(float *a, float *b, 
float *c){
int i;
for(i=0; i<N; i++){
a[i] = 1.0;
b[i] = 2.0;
c[i] = 0.0;
}
}
void add(float *a, float *b, 
float *c){
int i;
for(i=0; i<N; i++)
c[i] = a[i] + b[i];
}
int main(void){
float *a,*b,*c;
a = (float *)malloc(Nbytes);
b = (float *)malloc(Nbytes);
c = (float *)malloc(Nbytes);
init(a,b,c);
add(a,b,c);
free(a);
free(b);
free(c);
return 0;
}
CUDA Cによる並列実行プログラム
2015/12/16GPGPU実践基礎工学27
#define N (1024*1024)
#define Nbytes (N*sizeof(float))
__global__ void init(float *a,
float *b, float *c){
int i = blockIdx.x*blockDim.x
+ threadIdx.x;
a[i] = 1.0;
b[i] = 2.0;
c[i] = 0.0;
}
__global__ void add(float *a,
float *b, float *c){
int i = blockIdx.x*blockDim.x
+ threadIdx.x;
c[i] = a[i] + b[i];
}
int main(void){
float *a,*b,*c;
cudaMalloc((void **)&a, Nbytes);
cudaMalloc((void **)&b, Nbytes);
cudaMalloc((void **)&c, Nbytes);
init<<< N/256, 256>>>(a,b,c);
add<<< N/256, 256>>>(a,b,c);
cudaFree(a);
cudaFree(b);
cudaFree(c);
return 0;
}
CUDA CのKernel
2015/12/16GPGPU実践基礎工学28
__global__ void init(float *a, float *b, float *c){
int i = blockIdx.x*blockDim.x + threadIdx.x;
a[i] = 1.0;
b[i] = 2.0;
c[i] = 0.0;
}
__global__ void add(float *a, float *b, float *c){
int i = blockIdx.x*blockDim.x + threadIdx.x;
c[i] = a[i] + b[i];
}
OpenCLのカーネルコード
2015/12/16GPGPU実践基礎工学29
__kernel void init(__global float *a, __global float *b, __global float *c){
int i = get_global_id(0);
a[i] = 1.0;
b[i] = 2.0;
c[i] = 0.0;
}
__kernel void add(__global float *a, __global float *b, __global float *c){
int i = get_global_id(0);
c[i] = a[i] + b[i];
}
clvectoradd.cl
OpenCLのホストプログラム
2015/12/16GPGPU実践基礎工学30
#include<stdio.h>
#include<stdlib.h>
#include<CL/cl.h>
#define N (1024*1024)
#define NBytes (N*sizeof(float))
#define MAX_SOURCE_SIZE (0x100000)
int main(){
cl_device_id device_id = NULL;
cl_platform_id platform_id = NULL;
cl_context context            = NULL;
cl_command_queue command_queue = NULL;
cl_uint num_platform;
cl_uint num_device;
cl_int stat;
cl_program program  = NULL;
cl_kernel kernel[2] = {NULL,NULL};
cl_mem a = NULL;
cl_mem b = NULL;
cl_mem c = NULL;
float *host_c=(float *)malloc(Bytes);
FILE  *fp;
char  *filename = "./add.cl";
char  *source_str;
size_t source_size;
//6.カーネルのソースコードを読み込み
if( (fp = fopen(filename,"r"))==NULL ){
printf("error¥n");
return 1;
}
source_str = (char *)malloc
(MAX_SOURCE_SIZE);
source_size = fread(source_str,1, 
MAX_SOURCE_SIZE, fp);
fclose(fp);
clvectoradd.cpp
OpenCLのホストプログラム
2015/12/16GPGPU実践基礎工学31
//1.実行するプラットフォームの決定
clGetPlatformIDs(1, &platform_id,
&num_platform);
//2.実行するデバイスの決定
clGetDeviceIDs(platform_id,
CL_DEVICE_TYPE_DEFAULT, 1, 
&device_id, &num_device);
//3.OpenCLコンテキストの作成
context = clCreateContext(NULL, 1, 
&device_id, NULL, NULL, &stat);
//4.コマンドキューの作成
command_queue = clCreateCommandQueue
(context, device_id, 0, &stat);
//5.メモリバッファオブジェクトの作成
a = clCreateBuffer(context, 
CL_MEM_READ_WRITE, NBytes, NULL, &stat);
b = clCreateBuffer(context, 
CL_MEM_READ_WRITE, NBytes, NULL, &stat);
c = clCreateBuffer(context, 
CL_MEM_READ_WRITE, NBytes, NULL, &stat);
//7.プログラムオブジェクトの作成
program = clCreateProgramWithSource
(context, 1, (const char **)&source_str, 
(const size_t *)&source_size, &stat);
//8.カーネルのコンパイル
clBuildProgram(program,1, &device_id,
NULL, NULL, NULL);
//9.カーネルオブジェクトの作成
kernel[0] = clCreateKernel(program, 
"init", &stat);
kernel[1] = clCreateKernel(program, 
"add", &stat);
clvectoradd.cpp
OpenCLのホストプログラム
2015/12/16GPGPU実践基礎工学32
//10.カーネル引数の設定
clSetKernelArg(kernel[0], 0, 
sizeof(cl_mem), (void *)&a);
clSetKernelArg(kernel[0], 1, 
sizeof(cl_mem), (void *)&b);
clSetKernelArg(kernel[0], 2, 
sizeof(cl_mem), (void *)&c);
clSetKernelArg(kernel[1], 0, 
sizeof(cl_mem), (void *)&a);
clSetKernelArg(kernel[1], 1, 
sizeof(cl_mem), (void *)&b);
clSetKernelArg(kernel[1], 2, 
sizeof(cl_mem), (void *)&c);
//アイテムの数(並列度)の設定
size_t global_item_size = N;
size_t local_item_size = 256;
//11.カーネルの実行
clEnqueueNDRangeKernel(command_queue, 
kernel[0], 1, NULL, &global_item_size, 
&local_item_size, 0, NULL, NULL);
clEnqueueNDRangeKernel(command_queue, 
kernel[1], 1, NULL, &global_item_size, 
&local_item_size, 0, NULL, NULL);
//12.メモリオブジェクトから結果を読み出し
clEnqueueReadBuffer(command_queue, c, 
CL_TRUE,0,NBytes,host_c,0,NULL,NULL);
//結果の表示
for(int i=0; i<N; i++)
printf("%d, %f¥n",i,host_c[i]);
clvectoradd.cpp
OpenCLのホストプログラム
2015/12/16GPGPU実践基礎工学33
//13.オブジェクトの解放
clFlush (command_queue);
clFinish(command_queue);
clReleaseKernel(kernel[1]);
clReleaseKernel(kernel[0]);
clReleaseProgram(program);
clReleaseMemObject(a);
clReleaseMemObject(b);
clReleaseMemObject(c);
clReleaseCommandQueue(command_queue);
clReleaseContext(context);
free(host_c);
free(source_str);
return 0;
}
clvectoradd.cpp
性能比較
2015/12/16GPGPU実践基礎工学34
 配列の要素数220
 CUDA CとOpenCLで同じ傾向
 1ブロックあたりのスレッド数が増加すると性能が向上
 スレッド数を多くしすぎると性能が低下
 OpenCLはCUDAより実行効率の悪い実行ファイルを生成?
Number of 
Threads/Block
Processing time [ms]
CUDA C OpenCL
32 0.276 0.431
64 0.169 0.301
128 0.128 0.268
256 0.119 0.257
512 0.120 0.258
1024 0.151 0.279
GPU/CUDAとOpenCLの対応
GPU
SM
CUDA 
Core
GPU
GPGPU実践基礎工学35
CUDA
Grid
Block
Thread
OpenCL
OpenCL
デバイス
ワーク
グループ
ワーク
アイテム
OpenCL
グローバルメモリ
コンスタントメモリ
ローカル
メモリ
プライベート
メモリ
OpenCL
OpenCL
デバイス
演算
ユニット
プロセッシン
グエレメント
GPU/CUDA
グローバルメモリ
コンスタントメモリ
共有メモリ
レジスタ
ハードウェア構成 並列化階層 メモリ階層
ワークグループID
ワークアイテムID
(ローカルID)
blockIdx
threadIdx
2015/12/16

More Related Content

What's hot

2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)
2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)
2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)
智啓 出川
 
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
智啓 出川
 
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
智啓 出川
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
智啓 出川
 
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
智啓 出川
 
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
智啓 出川
 
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
智啓 出川
 
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
智啓 出川
 
2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
智啓 出川
 
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
智啓 出川
 
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
智啓 出川
 
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
智啓 出川
 
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
智啓 出川
 
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
智啓 出川
 
2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算
智啓 出川
 

What's hot (20)

2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)
2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)
2015年度GPGPU実践基礎工学 第3回 GPUクラスタ上でのプログラミング(CUDA)
 
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第4回 CPUのアーキテクチャ
 
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
2015年度GPGPU実践プログラミング 第6回 パフォーマンス解析ツール
 
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
2015年度GPGPU実践プログラミング 第4回 GPUでの並列プログラミング(ベクトル和,移動平均,差分法)
 
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
2015年度GPGPU実践基礎工学 第13回 GPUのメモリ階層
 
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
2015年度GPGPU実践プログラミング 第15回 GPU最適化ライブラリ
 
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
2015年度GPGPU実践プログラミング 第3回 GPGPUプログラミング環境
 
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用(高度な最適化)
2015年度先端GPGPUシミュレーション工学特論 第13回 数値流体力学への応用 (高度な最適化)
 
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
2015年度GPGPU実践プログラミング 第8回 総和計算(高度な最適化)
 
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細(共有メモリ)
2015年度先端GPGPUシミュレーション工学特論 第4回 GPUのメモリ階層の詳細 (共有メモリ)
 
2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ
2015年度GPGPU実践基礎工学 第9回 GPUのアーキテクチャ
 
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
2015年度先端GPGPUシミュレーション工学特論 第14回 複数GPUの利用
 
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念とメモリアクセス
2015年度先端GPGPUシミュレーション工学特論 第2回 GPUによる並列計算の概念と メモリアクセス
 
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
2015年度GPGPU実践基礎工学 第10回 GPUのプログラム構造
 
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)2015年度GPGPU実践基礎工学 第11回 GPUでの並列プログラミング(ベクトル和)
2015年度GPGPU実践基礎工学 第11回 GPUでの並列 プログラミング(ベクトル和)
 
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
2015年度GPGPU実践プログラミング 第5回 GPUのメモリ階層
 
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
2015年度GPGPU実践基礎工学 第12回 GPUによる画像処理
 
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
2015年度先端GPGPUシミュレーション工学特論 第15回 CPUとGPUの協調
 
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
2015年度GPGPU実践基礎工学 第2回 GPGPUの歴史と応用例
 
2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算2015年度GPGPU実践プログラミング 第7回 総和計算
2015年度GPGPU実践プログラミング 第7回 総和計算
 

Viewers also liked

2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法
2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法
2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法
智啓 出川
 
2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法
2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法
2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法
智啓 出川
 
2015年度GPGPU実践プログラミング 第14回 N体問題
2015年度GPGPU実践プログラミング 第14回 N体問題2015年度GPGPU実践プログラミング 第14回 N体問題
2015年度GPGPU実践プログラミング 第14回 N体問題
智啓 出川
 
2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理
智啓 出川
 
2015年度GPGPU実践プログラミング 第13回 多粒子の運動
2015年度GPGPU実践プログラミング 第13回 多粒子の運動2015年度GPGPU実践プログラミング 第13回 多粒子の運動
2015年度GPGPU実践プログラミング 第13回 多粒子の運動
智啓 出川
 
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
智啓 出川
 
2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例
2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例
2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例
智啓 出川
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
智啓 出川
 
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
智啓 出川
 

Viewers also liked (14)

2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算(移流方程式)
2015年度先端GPGPUシミュレーション工学特論 第9回 偏微分方程式の差分計算 (移流方程式)
 
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針(Flop/Byte,計算律速,メモリ律速)
2015年度先端GPGPUシミュレーション工学特論 第6回 プログラムの性能評価指針 (Flop/Byte,計算律速,メモリ律速)
 
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算(拡散方程式)
2015年度先端GPGPUシミュレーション工学特論 第8回 偏微分方程式の差分計算 (拡散方程式)
 
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細(threadとwarp)
2015年度先端GPGPUシミュレーション工学特論 第3回 GPUプログラム構造の詳細 (threadとwarp)
 
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
2015年度先端GPGPUシミュレーション工学特論 第7回 総和計算(Atomic演算)
 
2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法
2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法
2015年度先端GPGPUシミュレーション工学特論 第1回補足 GPGPU教育計算機システムGROUSEの利用方法
 
2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法
2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法
2015年度GPGPU実践基礎工学 第9回補足 GROUSEの利用方法
 
2015年度GPGPU実践プログラミング 第14回 N体問題
2015年度GPGPU実践プログラミング 第14回 N体問題2015年度GPGPU実践プログラミング 第14回 N体問題
2015年度GPGPU実践プログラミング 第14回 N体問題
 
2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理2015年度GPGPU実践プログラミング 第11回 画像処理
2015年度GPGPU実践プログラミング 第11回 画像処理
 
2015年度GPGPU実践プログラミング 第13回 多粒子の運動
2015年度GPGPU実践プログラミング 第13回 多粒子の運動2015年度GPGPU実践プログラミング 第13回 多粒子の運動
2015年度GPGPU実践プログラミング 第13回 多粒子の運動
 
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
2015年度GPGPU実践プログラミング 第10回 行列計算(行列-行列積の高度な最適化)
 
2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例
2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例
2015年度GPGPU実践プログラミング 第1回 GPGPUの歴史と応用例
 
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
2015年度GPGPU実践プログラミング 第9回 行列計算(行列-行列積)
 
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
2015年度GPGPU実践プログラミング 第2回 GPUのアーキテクチャとプログラム構造
 

Similar to 2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)

1070: CUDA プログラミング入門
1070: CUDA プログラミング入門1070: CUDA プログラミング入門
1070: CUDA プログラミング入門
NVIDIA Japan
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
Kohei KaiGai
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
NVIDIA Japan
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
ManaMurakami1
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
RCCSRENKEI
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan
 
NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄
Tak Izaki
 
並列計算への道 2015年版
並列計算への道 2015年版並列計算への道 2015年版
並列計算への道 2015年版
ryos36
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
Developers Summit
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
You&I
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
Masahiko Sawada
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
Daiyu Hatakeyama
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
Hitoshi Sato
 
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
Insight Technology, Inc.
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
ハイシンク創研 / Laboratory of Hi-Think Corporation
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
 
IEEE ITSS Nagoya Chapter NVIDIA
IEEE ITSS Nagoya Chapter NVIDIAIEEE ITSS Nagoya Chapter NVIDIA
IEEE ITSS Nagoya Chapter NVIDIA
Tak Izaki
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
Naoto MATSUMOTO
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
M Hagiwara
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
ManaMurakami1
 

Similar to 2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL) (20)

1070: CUDA プログラミング入門
1070: CUDA プログラミング入門1070: CUDA プログラミング入門
1070: CUDA プログラミング入門
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
Getting Started with Jetson Nano
Getting Started with Jetson NanoGetting Started with Jetson Nano
Getting Started with Jetson Nano
 
20170421 tensor flowusergroup
20170421 tensor flowusergroup20170421 tensor flowusergroup
20170421 tensor flowusergroup
 
200625material naruse
200625material naruse200625material naruse
200625material naruse
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄NVIDIA deep learning最新情報in沖縄
NVIDIA deep learning最新情報in沖縄
 
並列計算への道 2015年版
並列計算への道 2015年版並列計算への道 2015年版
並列計算への道 2015年版
 
【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今【A-1】AIを支えるGPUコンピューティングの今
【A-1】AIを支えるGPUコンピューティングの今
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編機械学習 / Deep Learning 大全 (6) Library編
機械学習 / Deep Learning 大全 (6) Library編
 
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
第162回情報処理学会ハイパフォーマンスコンピューティング研究発表会
 
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
[db analytics showcase Sapporo 2017] B14: GPU コンピューティング最前線 by エヌビディア 佐々木邦暢
 
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
機械学習とこれを支える並列計算: ディープラーニング・スーパーコンピューターの応用について
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
IEEE ITSS Nagoya Chapter NVIDIA
IEEE ITSS Nagoya Chapter NVIDIAIEEE ITSS Nagoya Chapter NVIDIA
IEEE ITSS Nagoya Chapter NVIDIA
 
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
高速ネットワーク最新動向と具体例 (ENOG58 Meeting)
 
Tremaで試すFirewall
Tremaで試すFirewallTremaで試すFirewall
Tremaで試すFirewall
 
20170726 py data.tokyo
20170726 py data.tokyo20170726 py data.tokyo
20170726 py data.tokyo
 

More from 智啓 出川

Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
智啓 出川
 
Very helpful python code to find coefficients of the finite difference method
Very helpful python code to find coefficients of the finite difference methodVery helpful python code to find coefficients of the finite difference method
Very helpful python code to find coefficients of the finite difference method
智啓 出川
 
Why do we confuse String and Array of Characters in Fortran?
Why do we confuse String and Array of Characters in Fortran?Why do we confuse String and Array of Characters in Fortran?
Why do we confuse String and Array of Characters in Fortran?
智啓 出川
 
Pythonによる累乗近似
Pythonによる累乗近似Pythonによる累乗近似
Pythonによる累乗近似
智啓 出川
 
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
智啓 出川
 
オブジェクト指向Fortranが拓く(はずだった)新しい世界
オブジェクト指向Fortranが拓く(はずだった)新しい世界オブジェクト指向Fortranが拓く(はずだった)新しい世界
オブジェクト指向Fortranが拓く(はずだった)新しい世界
智啓 出川
 
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
智啓 出川
 
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust) GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
智啓 出川
 
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
智啓 出川
 
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS) GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
智啓 出川
 
GPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial RunGPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial Run
智啓 出川
 
Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能
智啓 出川
 
PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法
智啓 出川
 
教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性
智啓 出川
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
智啓 出川
 
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
智啓 出川
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
智啓 出川
 
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
智啓 出川
 

More from 智啓 出川 (19)

Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋Fortranが拓く世界、VSCodeが架ける橋
Fortranが拓く世界、VSCodeが架ける橋
 
Very helpful python code to find coefficients of the finite difference method
Very helpful python code to find coefficients of the finite difference methodVery helpful python code to find coefficients of the finite difference method
Very helpful python code to find coefficients of the finite difference method
 
Why do we confuse String and Array of Characters in Fortran?
Why do we confuse String and Array of Characters in Fortran?Why do we confuse String and Array of Characters in Fortran?
Why do we confuse String and Array of Characters in Fortran?
 
Pythonによる累乗近似
Pythonによる累乗近似Pythonによる累乗近似
Pythonによる累乗近似
 
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
数値計算結果のPythonによる後処理について(1次元データのピーク値およびその位置の推定)
 
オブジェクト指向Fortranが拓く(はずだった)新しい世界
オブジェクト指向Fortranが拓く(はずだった)新しい世界オブジェクト指向Fortranが拓く(はずだった)新しい世界
オブジェクト指向Fortranが拓く(はずだった)新しい世界
 
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
Schematic diagrams of GPUs' architecture and Time evolution of theoretical FL...
 
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust) GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
GPGPU Seminar (GPU Accelerated Libraries, 3 of 3, Thrust)
 
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE) GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
GPGPU Seminar (GPU Accelerated Libraries, 2 of 3, cuSPARSE)
 
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS) GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
GPGPU Seminar (GPU Accelerated Libraries, 1 of 3, cuBLAS)
 
GPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial RunGPGPU Education at Nagaoka University of Technology: A Trial Run
GPGPU Education at Nagaoka University of Technology: A Trial Run
 
Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能Cuda fortranの利便性を高めるfortran言語の機能
Cuda fortranの利便性を高めるfortran言語の機能
 
PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法PGI CUDA FortranとGPU最適化ライブラリの一連携法
PGI CUDA FortranとGPU最適化ライブラリの一連携法
 
教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性教育機関でのJetsonの活用の可能性
教育機関でのJetsonの活用の可能性
 
GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)GPGPU Seminar (GPGPU and CUDA Fortran)
GPGPU Seminar (GPGPU and CUDA Fortran)
 
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
GPGPU Seminar (Accelerataion of Lattice Boltzmann Method using CUDA Fortran)
 
GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)GPGPU Seminar (PyCUDA)
GPGPU Seminar (PyCUDA)
 
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用(支配方程式,CPUプログラム)
2015年度先端GPGPUシミュレーション工学特論 第11回 数値流体力学への応用 (支配方程式,CPUプログラム)
 
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解(線形連立一次方程式)
2015年度先端GPGPUシミュレーション工学特論 第10回 Poisson方程式の求解 (線形連立一次方程式)
 

2015年度GPGPU実践基礎工学 第15回 GPGPU開発環境 (OpenCL)