C言語、C言語+OpenMP、CUDAの3つの方法でプログラム1~3をそれぞれ実装し、計算時間を比較・評価する。
以下の計算を行うプログラムを実装し、
-
$L=256(=2^8)$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0001194 | 100 |
C言語+OpenMP | 0.0065664 | 5499 |
CUDA | 0.0000000 | 0 |
-
$L=4096(=2^{12})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0281862 | 100 |
C言語+OpenMP | 2.0924867 | 7424 |
CUDA | 0.0000000 | 0 |
-
$L=65536(=2^{16})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 6.9393366 | 100 |
C言語+OpenMP | 563.89854 | 8126 |
CUDA | メモリ不足 | - |
以下の計算を行うプログラムを実装し、
-
$L=4096(=2^{12})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0000118 | 100 |
C言語+OpenMP | 0.0005082 | 4307 |
CUDA | 0.000007168 | 60.75 |
-
$L=65536(=2^{16})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0002023 | 100 |
C言語+OpenMP | 0.0008619 | 4261 |
CUDA | 0.000017408 | 2.020 |
-
$L=1048576(=2^{20})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0027411 | 100 |
C言語+OpenMP | 0.0017855 | 65.14 |
CUDA | 0.000185344 | 6.762 |
-
$L=16777216(=2^{24})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0395946 | 100 |
C言語+OpenMP | 0.0216864 | 54.77 |
CUDA | 0.002864128 | 7.234 |
-
$L=16(=2^{4})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0000136 | 100 |
C言語+OpenMP | 0.0012649 | 9301 |
CUDA | 0.000008192 | 60.24 |
-
$L=256(=2^{8})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 0.0556386 | 100 |
C言語+OpenMP | 0.0171484 | 30.82 |
CUDA | 0.000607232 | 1.091 |
-
$L=1048576(=2^{20})$ の時の計算時間
方法 | 計算時間 [s] | 加速化率 [%] |
---|---|---|
C言語 | 1570.3204803 | 100 |
C言語+OpenMP | 471.3444349 | 30.02 |
CUDA | 2.625450928 | 0.1672 |
- C言語
cl filename.c
- C言語+OpenMP
cl filename.c -openmp
- CUDA
nvcc filename.cu -o filename.exe