際際滷

際際滷Share a Scribd company logo
遺雨禽粥を旋喘した永鴛閣盾裂の
   互堀晒にvする冩梢



峺ЫT       畊ぱа仂進
屈m?賓         雰?萸
遺雨禽粥を旋喘した永鴛閣盾裂の
   互堀晒にvする冩梢



峺ЫT       畊ぱа仂進
屈m?賓         雰?萸
PIV
Particle Image Velocimetry
      腺徨鮫饒堀霞協隈
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
r震 t   r震 t+Δt
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
扮震岳
扮震岳
扮震岳   扮震岳+Δt
扮震岳   扮震岳+Δt
扮震岳   扮震岳+Δt
扮震岳   扮震岳+Δt
扮震岳   扮震岳+Δt
扮震岳   扮震岳+Δt
扮震岳
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
永鴛閣盾裂はベクトルが謹い
永鴛閣盾裂はベクトルが謹い

? 鮫颯汽ぅ困1024〜1024
永鴛閣盾裂はベクトルが謹い

? 鮫颯汽ぅ困1024〜1024
? 鮪I囃サイズは8〜8から48〜48
永鴛閣盾裂はベクトルが謹い

? 鮫颯汽ぅ困1024〜1024
? 鮪I囃サイズは8〜8から48〜48
? オ`バ`ラップは50%が峠譲議
永鴛閣盾裂はベクトルが謹い


 匯指の盾裂で方認゛方嵐のベクトル
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
揖扮處麻
揖扮處麻にれたデバイス
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
GPU
Graphics Processing Unit
     鮫駱殍穽慰
GPU
Graphics Processing Unit
 鮫駱殍穽慰
GPGPU
General Purpose Graphics Processing Unit
         喘朕議鮫駱殍穽慰
皆珂方       SP方
   兆念
              CPU方犁隠 ┘灰∧犁隠
GeForce GT
                 12        96
   240
GeForce GTX
                 48        384
   560 Ti
GeForce GTX
                168       1,344
   660 Ti

                  麼送のグラフィックボ`ドスペック
スパコン   g匯CPU   g匯GPU

 處麻嬬薦      £      ?       @

g匯スレッド
           £      £       ?
 處麻堀業

マルチスレッド
           £      @       ?
  處麻堀業

\喘コスト      ?      ?       ?
スパコン   g匯CPU   g匯GPU

 處麻嬬薦      £      ?       @

g匯スレッド
           £      £       ?
 處麻堀業

マルチスレッド
           £      @       ?
  處麻堀業

\喘コスト      ?      ?       ?
スパコン   g匯CPU   g匯GPU

 處麻嬬薦      £      ?       @

g匯スレッド
           £      £       ?
 處麻堀業

マルチスレッド
           £      @       ?
  處麻堀業

\喘コスト      ?      ?       ?
GPGPU
CPU
GPGPU
CPU   C、Java、Ruby´
GPGPU
CPU   C、Java、Ruby´
GPGPU   冱Z
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
? CUDA
? CUDA
? ATI Stream
? CUDA
? ATI Stream
? OpenCL
CUDA   ATI Stream   OpenCL

鬋妊丱ぅ    @         @          ?

 來嬬       £         £          ?

サポ`ト      £         @          ?
CUDA   ATI Stream   OpenCL

鬋妊丱ぅ    @         @          ?

 來嬬       £         £          ?

サポ`ト      £         @          ?
CUDA   ATI Stream   OpenCL

鬋妊丱ぅ    @         @          ?

 來嬬       £         £          ?

サポ`ト      £         @          ?
CUDA   ATI Stream   OpenCL

鬋妊丱ぅ    @         @          ?

 來嬬       £         £          ?

サポ`ト      £         @          ?
CUDA   ATI Stream   OpenCL

鬋妊丱ぅ    @         @          ?

 來嬬       £         £          ?

サポ`ト      £         @          ?
CUDA
遺冱囂コ`ド   遺雨禽粥コ`ド
遺冱囂コ`ド                  遺雨禽粥コ`ド
#include <stdio.h>

int main() {
! int n, *a;
! n = 100;
! a = (int *)malloc(n);

!
!   func(a, n);


!
!   return 0;
}

void func(int *a, int n) {
! int i;



!   for (i = 0; i < n; i++) {
!   ! a[i] = i;
!   }
}
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
遺冱囂コ`ド                         遺雨禽粥コ`ド
#include <stdio.h>              #include <stdio.h>

int main() {                    int main() {
! int n, *a;                    ! int n, *cpu_a, *gpu_a;
! n = 100;                      ! n = 100;
! a = (int *)malloc(n);         ! cpu_a = (int *)malloc(n);
                                ! cudaMalloc((void **)&gpu_a, n);
!                               !
!   func(a, n);                 ! func<<<3, 32>>>(gpu_a, n);
                                ! cudaMemcpy(cpu_a, gpu_a, n,
                                cudaMemcpyDeviceToHost);
!                               !
!   return 0;                   ! return 0;
}                               }

void func(int *a, int n) {      __global__ void func(int *a, int n) {
! int i;                        ! int i;
                                ! i = blockIdx.x * blockDim.x +
                                threadIdx.x;
                                !
!   for (i = 0; i < n; i++) {   ! if (i < n) {
!   ! a[i] = i;                 ! ! a[i] = i;
!   }                           ! }
}                               }
PIV盾裂g佩rg曳^
90 sec




60 sec




30 sec




                  i:24; w: 24   i:32; w:32   i:48; w:48
   i: 16; w: 16
PIV盾裂g佩rg曳^
90 sec                          C冱ZIntel Core 2 Duo P8400 2.26GHz



60 sec




30 sec




                  i:24; w: 24   i:32; w:32    i:48; w:48
   i: 16; w: 16
PIV盾裂g佩rg曳^
90 sec                          C冱ZIntel Core 2 Duo P8400 2.26GHz



60 sec




30 sec                                C冱ZIntel Core i5 2400s 2.5GHz




                  i:24; w: 24   i:32; w:32     i:48; w:48
   i: 16; w: 16
PIV盾裂g佩rg曳^
90 sec                          C冱ZIntel Core 2 Duo P8400 2.26GHz



60 sec




30 sec                                C冱ZIntel Core i5 2400s 2.5GHz



                                     CUDANvidia GeForce GTX 560 Ti

                  i:24; w: 24   i:32; w:32     i:48; w:48
   i: 16; w: 16
蔚參貧の堀さ

         ☆Core i5のg佩堀業より
3
蔚參貧の堀さ

         ☆Core i5のg佩堀業より
3
蔚參貧の堀さ

         ☆Core i5のg佩堀業より
                ☆恷m晒oし
300
蔚參貧の堀さ

         ☆Core i5のg佩堀業より
         ☆恷m晒した栽の嚠
CUDAを喘いた栽のPIV盾裂rg
  0 sec   10 sec   20 sec   30 sec   40 sec   50 sec


2旦




30旦


           F壓                  嚠




                    ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
CUDAを喘いた栽のPIV盾裂rg
  0 sec         10 sec   20 sec   30 sec   40 sec   50 sec

          2.75 sec
2旦




30旦


                 F壓                  嚠




                          ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
CUDAを喘いた栽のPIV盾裂rg
  0 sec          10 sec   20 sec   30 sec   40 sec   50 sec

          2.75 sec
2旦
      0.03 sec




30旦


                  F壓                  嚠




                           ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
CUDAを喘いた栽のPIV盾裂rg
  0 sec          10 sec   20 sec   30 sec   40 sec      50 sec

          2.75 sec
2旦
      0.03 sec


                                                     41.25 sec

30旦


                  F壓                  嚠




                           ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
CUDAを喘いた栽のPIV盾裂rg
  0 sec           10 sec   20 sec   30 sec   40 sec      50 sec

          2.75 sec
2旦
      0.03 sec


                                                      41.25 sec

30旦
       0.41 sec

                   F壓                  嚠




                            ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
CUDAを喘いた栽のPIV盾裂rg
  0 sec           10 sec   20 sec   30 sec   40 sec      50 sec

          2.75 sec
2旦
      0.03 sec


                                                      41.25 sec

30旦
       0.41 sec

                   F壓                  嚠


        30旦をI尖するのに1昼參和

                            ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
フレ`ムレ`トより


堀い盾裂スピ`ド
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒
リアルタイムレンダリング
盾裂スタイルを
寄きく笋┐

リアルタイムレンダリング
書朔の仁籾
書朔の仁籾

? PIVOCCプログラムの個措
書朔の仁籾

? PIVOCCプログラムの個措
? リアルタイムレンダリング╂輜襭
!ank y"

More Related Content

Similar to 遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒 (20)

GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013
GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013
GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013
Ryo Sakamoto
?
ぱっと需でわかる遺++11
ぱっと需でわかる遺++11ぱっと需でわかる遺++11
ぱっと需でわかる遺++11
えぴ 牽弥
?
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competition
yak1ex
?
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
Noboru Irieda
?
昇室プログラミングのための遺++秘壇
昇室プログラミングのための遺++秘壇昇室プログラミングのための遺++秘壇
昇室プログラミングのための遺++秘壇
natrium11321
?
堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング
堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング
堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング
Kiwamu Okabe
?
GPUをJavaで聞う(Java Casual Talks #1)
GPUをJavaで聞う(Java Casual Talks #1)GPUをJavaで聞う(Java Casual Talks #1)
GPUをJavaで聞う(Java Casual Talks #1)
なおき きしだ
?
コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇
コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇
コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇
なおき きしだ
?
お念は PHP のs雰議な尖喇の方をえているのか
お念は PHP のs雰議な尖喇の方をえているのかお念は PHP のs雰議な尖喇の方をえているのか
お念は PHP のs雰議な尖喇の方をえているのか
Kousuke Ebihara
?
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competition
yak1ex
?
皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周
皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周
皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周
yaegashi
?
際際滷
際際滷際際滷
際際滷
Takefumi MIYOSHI
?
仟しい旺双韓看姻更猟のご戻宛
仟しい旺双韓看姻更猟のご戻宛仟しい旺双韓看姻更猟のご戻宛
仟しい旺双韓看姻更猟のご戻宛
yohhoy
?
強議柴鮫隈の旺双晒
強議柴鮫隈の旺双晒強議柴鮫隈の旺双晒
強議柴鮫隈の旺双晒
Proktmr
?
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
Shiqiao Du
?
T69 c++cli ネイティブライブラリラッピング秘T
T69 c++cli ネイティブライブラリラッピング秘TT69 c++cli ネイティブライブラリラッピング秘T
T69 c++cli ネイティブライブラリラッピング秘T
阜槻 卅儲
?
v|GPGPU茶氏 LLVM meets GPU
v|GPGPU茶氏 LLVM meets GPUv|GPGPU茶氏 LLVM meets GPU
v|GPGPU茶氏 LLVM meets GPU
Takuro Iizuka
?
怏みzみでこそ遺++を聞う10の尖喇
怏みzみでこそ遺++を聞う10の尖喇怏みzみでこそ遺++を聞う10の尖喇
怏みzみでこそ遺++を聞う10の尖喇
kikairoya
?
永霞或沿艶稼遺晦による赫永赫永雨秘壇
永霞或沿艶稼遺晦による赫永赫永雨秘壇永霞或沿艶稼遺晦による赫永赫永雨秘壇
永霞或沿艶稼遺晦による赫永赫永雨秘壇
Yosuke Onoue
?
GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013
GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013
GPUが100蔚堀いという舞をぶち△擦燭蕕いい ver.2013
Ryo Sakamoto
?
ぱっと需でわかる遺++11
ぱっと需でわかる遺++11ぱっと需でわかる遺++11
ぱっと需でわかる遺++11
えぴ 牽弥
?
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competition
yak1ex
?
Python physicalcomputing
Python physicalcomputingPython physicalcomputing
Python physicalcomputing
Noboru Irieda
?
昇室プログラミングのための遺++秘壇
昇室プログラミングのための遺++秘壇昇室プログラミングのための遺++秘壇
昇室プログラミングのための遺++秘壇
natrium11321
?
堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング
堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング
堰温壊一艶鉛鉛ではじめる遺看姻岳艶恰-珂3怏zみプログラミング
Kiwamu Okabe
?
GPUをJavaで聞う(Java Casual Talks #1)
GPUをJavaで聞う(Java Casual Talks #1)GPUをJavaで聞う(Java Casual Talks #1)
GPUをJavaで聞う(Java Casual Talks #1)
なおき きしだ
?
コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇
コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇
コンピュ`ティングと干温厩温簡なにわ意掘遺堰祇
なおき きしだ
?
お念は PHP のs雰議な尖喇の方をえているのか
お念は PHP のs雰議な尖喇の方をえているのかお念は PHP のs雰議な尖喇の方をえているのか
お念は PHP のs雰議な尖喇の方をえているのか
Kousuke Ebihara
?
C++0x in programming competition
C++0x in programming competitionC++0x in programming competition
C++0x in programming competition
yak1ex
?
皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周
皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周
皆岳温界一掘恰界鞄温稼乙艶で需たシステムプログラミング宛周
yaegashi
?
仟しい旺双韓看姻更猟のご戻宛
仟しい旺双韓看姻更猟のご戻宛仟しい旺双韓看姻更猟のご戻宛
仟しい旺双韓看姻更猟のご戻宛
yohhoy
?
強議柴鮫隈の旺双晒
強議柴鮫隈の旺双晒強議柴鮫隈の旺双晒
強議柴鮫隈の旺双晒
Proktmr
?
Cython intro prelerease
Cython intro prelereaseCython intro prelerease
Cython intro prelerease
Shiqiao Du
?
T69 c++cli ネイティブライブラリラッピング秘T
T69 c++cli ネイティブライブラリラッピング秘TT69 c++cli ネイティブライブラリラッピング秘T
T69 c++cli ネイティブライブラリラッピング秘T
阜槻 卅儲
?
v|GPGPU茶氏 LLVM meets GPU
v|GPGPU茶氏 LLVM meets GPUv|GPGPU茶氏 LLVM meets GPU
v|GPGPU茶氏 LLVM meets GPU
Takuro Iizuka
?
怏みzみでこそ遺++を聞う10の尖喇
怏みzみでこそ遺++を聞う10の尖喇怏みzみでこそ遺++を聞う10の尖喇
怏みzみでこそ遺++を聞う10の尖喇
kikairoya
?
永霞或沿艶稼遺晦による赫永赫永雨秘壇
永霞或沿艶稼遺晦による赫永赫永雨秘壇永霞或沿艶稼遺晦による赫永赫永雨秘壇
永霞或沿艶稼遺晦による赫永赫永雨秘壇
Yosuke Onoue
?

More from 萸 雰 (6)

遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕
萸 雰
?
Steve jobs introducton
Steve jobs introductonSteve jobs introducton
Steve jobs introducton
萸 雰
?
2010 english honors camp music intro
2010 english honors camp music intro2010 english honors camp music intro
2010 english honors camp music intro
萸 雰
?
並匍柴鮫慕
並匍柴鮫慕並匍柴鮫慕
並匍柴鮫慕
萸 雰
?
垢僥何の帆
垢僥何の帆垢僥何の帆
垢僥何の帆
萸 雰
?
Honors camp music intro
Honors camp music introHonors camp music intro
Honors camp music intro
萸 雰
?
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕
遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒にvする冩梢怱Ik燕
萸 雰
?
Steve jobs introducton
Steve jobs introductonSteve jobs introducton
Steve jobs introducton
萸 雰
?
2010 english honors camp music intro
2010 english honors camp music intro2010 english honors camp music intro
2010 english honors camp music intro
萸 雰
?
並匍柴鮫慕
並匍柴鮫慕並匍柴鮫慕
並匍柴鮫慕
萸 雰
?
垢僥何の帆
垢僥何の帆垢僥何の帆
垢僥何の帆
萸 雰
?
Honors camp music intro
Honors camp music introHonors camp music intro
Honors camp music intro
萸 雰
?

Recently uploaded (6)

及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア
及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア
及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア
OpenRTM1
?
cardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdfcardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdf
ssuser16d694
?
それ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgY
それ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgYそれ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgY
それ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgY
KeisukeHattori1
?
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docxALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ruthbarnuevo1
?
タワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTs
タワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTsタワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTs
タワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTs
KeisukeHattori1
?
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptxTAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
SheanOrvinBalao
?
及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア
及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア
及57指y徭嗽酉僥氏臼今祇屶何v處氏 蒙ev處 システムインテグレ`ションとロボットミドルウェア
OpenRTM1
?
cardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdfcardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdf
ssuser16d694
?
それ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgY
それ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgYそれ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgY
それ、マルハラかも。 ゛メッセ`ジ貧の鞘泣による圧a議ハラスメント のg壓來についてのサ`ベイgY
KeisukeHattori1
?
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docxALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ruthbarnuevo1
?
タワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTs
タワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTsタワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTs
タワ`マンション森 ?互侭からの靖李が、繁の伉尖彜Bに式ぼす唹を冥るRCTs
KeisukeHattori1
?
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptxTAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
SheanOrvinBalao
?

遺雨禽粥を旋喘した永鴛閣盾裂の互堀晒

  • 1. 遺雨禽粥を旋喘した永鴛閣盾裂の 互堀晒にvする冩梢 峺ЫT 畊ぱа仂進 屈m?賓 雰?萸
  • 2. 遺雨禽粥を旋喘した永鴛閣盾裂の 互堀晒にvする冩梢 峺ЫT 畊ぱа仂進 屈m?賓 雰?萸
  • 3. PIV
  • 4. Particle Image Velocimetry 腺徨鮫饒堀霞協隈
  • 9. r震 t r震 t+Δt
  • 14. 扮震岳 扮震岳+Δt
  • 15. 扮震岳 扮震岳+Δt
  • 16. 扮震岳 扮震岳+Δt
  • 17. 扮震岳 扮震岳+Δt
  • 18. 扮震岳 扮震岳+Δt
  • 19. 扮震岳 扮震岳+Δt
  • 37. GPU Graphics Processing Unit 鮫駱殍穽慰
  • 38. GPU Graphics Processing Unit 鮫駱殍穽慰
  • 39. GPGPU General Purpose Graphics Processing Unit 喘朕議鮫駱殍穽慰
  • 40. 皆珂方 SP方 兆念 CPU方犁隠 ┘灰∧犁隠 GeForce GT 12 96 240 GeForce GTX 48 384 560 Ti GeForce GTX 168 1,344 660 Ti 麼送のグラフィックボ`ドスペック
  • 41. スパコン g匯CPU g匯GPU 處麻嬬薦 £ ? @ g匯スレッド £ £ ? 處麻堀業 マルチスレッド £ @ ? 處麻堀業 \喘コスト ? ? ?
  • 42. スパコン g匯CPU g匯GPU 處麻嬬薦 £ ? @ g匯スレッド £ £ ? 處麻堀業 マルチスレッド £ @ ? 處麻堀業 \喘コスト ? ? ?
  • 43. スパコン g匯CPU g匯GPU 處麻嬬薦 £ ? @ g匯スレッド £ £ ? 處麻堀業 マルチスレッド £ @ ? 處麻堀業 \喘コスト ? ? ?
  • 44. GPGPU
  • 46. CPU C、Java、Ruby´ GPGPU
  • 47. CPU C、Java、Ruby´ GPGPU 冱Z
  • 50. ? CUDA ? ATI Stream
  • 51. ? CUDA ? ATI Stream ? OpenCL
  • 52. CUDA ATI Stream OpenCL 鬋妊丱ぅ @ @ ? 來嬬 £ £ ? サポ`ト £ @ ?
  • 53. CUDA ATI Stream OpenCL 鬋妊丱ぅ @ @ ? 來嬬 £ £ ? サポ`ト £ @ ?
  • 54. CUDA ATI Stream OpenCL 鬋妊丱ぅ @ @ ? 來嬬 £ £ ? サポ`ト £ @ ?
  • 55. CUDA ATI Stream OpenCL 鬋妊丱ぅ @ @ ? 來嬬 £ £ ? サポ`ト £ @ ?
  • 56. CUDA ATI Stream OpenCL 鬋妊丱ぅ @ @ ? 來嬬 £ £ ? サポ`ト £ @ ?
  • 57. CUDA
  • 58. 遺冱囂コ`ド 遺雨禽粥コ`ド
  • 59. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> int main() { ! int n, *a; ! n = 100; ! a = (int *)malloc(n); ! ! func(a, n); ! ! return 0; } void func(int *a, int n) { ! int i; ! for (i = 0; i < n; i++) { ! ! a[i] = i; ! } }
  • 60. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 61. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 62. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 63. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 64. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 65. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 66. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 67. 遺冱囂コ`ド 遺雨禽粥コ`ド #include <stdio.h> #include <stdio.h> int main() { int main() { ! int n, *a; ! int n, *cpu_a, *gpu_a; ! n = 100; ! n = 100; ! a = (int *)malloc(n); ! cpu_a = (int *)malloc(n); ! cudaMalloc((void **)&gpu_a, n); ! ! ! func(a, n); ! func<<<3, 32>>>(gpu_a, n); ! cudaMemcpy(cpu_a, gpu_a, n, cudaMemcpyDeviceToHost); ! ! ! return 0; ! return 0; } } void func(int *a, int n) { __global__ void func(int *a, int n) { ! int i; ! int i; ! i = blockIdx.x * blockDim.x + threadIdx.x; ! ! for (i = 0; i < n; i++) { ! if (i < n) { ! ! a[i] = i; ! ! a[i] = i; ! } ! } } }
  • 68. PIV盾裂g佩rg曳^ 90 sec 60 sec 30 sec i:24; w: 24 i:32; w:32 i:48; w:48 i: 16; w: 16
  • 69. PIV盾裂g佩rg曳^ 90 sec C冱ZIntel Core 2 Duo P8400 2.26GHz 60 sec 30 sec i:24; w: 24 i:32; w:32 i:48; w:48 i: 16; w: 16
  • 70. PIV盾裂g佩rg曳^ 90 sec C冱ZIntel Core 2 Duo P8400 2.26GHz 60 sec 30 sec C冱ZIntel Core i5 2400s 2.5GHz i:24; w: 24 i:32; w:32 i:48; w:48 i: 16; w: 16
  • 71. PIV盾裂g佩rg曳^ 90 sec C冱ZIntel Core 2 Duo P8400 2.26GHz 60 sec 30 sec C冱ZIntel Core i5 2400s 2.5GHz CUDANvidia GeForce GTX 560 Ti i:24; w: 24 i:32; w:32 i:48; w:48 i: 16; w: 16
  • 72. 蔚參貧の堀さ ☆Core i5のg佩堀業より
  • 73. 3 蔚參貧の堀さ ☆Core i5のg佩堀業より
  • 74. 3 蔚參貧の堀さ ☆Core i5のg佩堀業より ☆恷m晒oし
  • 75. 300 蔚參貧の堀さ ☆Core i5のg佩堀業より ☆恷m晒した栽の嚠
  • 76. CUDAを喘いた栽のPIV盾裂rg 0 sec 10 sec 20 sec 30 sec 40 sec 50 sec 2旦 30旦 F壓 嚠 ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
  • 77. CUDAを喘いた栽のPIV盾裂rg 0 sec 10 sec 20 sec 30 sec 40 sec 50 sec 2.75 sec 2旦 30旦 F壓 嚠 ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
  • 78. CUDAを喘いた栽のPIV盾裂rg 0 sec 10 sec 20 sec 30 sec 40 sec 50 sec 2.75 sec 2旦 0.03 sec 30旦 F壓 嚠 ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
  • 79. CUDAを喘いた栽のPIV盾裂rg 0 sec 10 sec 20 sec 30 sec 40 sec 50 sec 2.75 sec 2旦 0.03 sec 41.25 sec 30旦 F壓 嚠 ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
  • 80. CUDAを喘いた栽のPIV盾裂rg 0 sec 10 sec 20 sec 30 sec 40 sec 50 sec 2.75 sec 2旦 0.03 sec 41.25 sec 30旦 0.41 sec F壓 嚠 ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24
  • 81. CUDAを喘いた栽のPIV盾裂rg 0 sec 10 sec 20 sec 30 sec 40 sec 50 sec 2.75 sec 2旦 0.03 sec 41.25 sec 30旦 0.41 sec F壓 嚠 30旦をI尖するのに1昼參和 ☆鮫颯汽ぅ今1024〜1024鮪I囃48〜48嗣鮪I囃24〜24

Editor's Notes