將GPU多執行緒的計算能力與CPU進行比較

2021-10-10 01:31:40 字數 1919 閱讀 4561

#include

#include

#include

"cuda_runtime.h"

#include

"device_launch_parameters.h"

using

namespace std;

#define threadsize 100

#define arrsize 100

void

addwithcpu

(float

(*array)

[arrsize]);

void

addwithgpu

(float

(*array)

[arrsize]);

__global__ void

addkernel

(float

(*p)

[arrsize]);

//共threadsize組,每一組有arrsize個數字,組內進行二重迴圈計算

//對gpu而言,共分配threadsize個執行緒,每個執行緒只需計算一組資料。

//時間複雜度為o(threadsize * arrsize^2)

intmain()

} time_t startcpu, endcpu, startgpu, endgpu;

startcpu =

clock()

;addwithcpu

(array1)

; endcpu =

clock()

; startgpu =

clock()

;addwithgpu

(array2)

; endgpu =

clock()

; cout <<

"time used for cpu is: "

<< endcpu - startcpu << endl;

cout <<

"time used for gpu is: "

<< endgpu - startgpu << endl;

return1;

}//cpu computation

void

addwithcpu

(float

(*array)

[arrsize])}

}}//gpu kernel

__global__ void

addkernel

(float

(*p)

[arrsize])}

}//gpu computation

void

addwithgpu

(float

(*array)

[arrsize]

)

threadsize = 1 , arrsize = 1

threadsize = 1 , arrsize = 1000

threadsize = 10 , arrsize = 1000

threadsize = 100 , arrsize = 100

threadsize = 100 , arrsize = 500

threadsize = 100 , arrsize = 1000

threadsize = 1000 , arrsize = 100

threadsize = 1000 , arrsize = 500

threadsize = 1000 , arrsize = 1000

threadsize = 10000 , arrsize = 100

通過上述時間比對,可以看出gpu的基本處理時間大約在2.8秒左右,這包括裝置啟動時間,裝置關閉時間。隨著資料量的增加,cpu和gpu的處理時間差逐漸縮小,可以看出gpu的多執行緒在處理海量資料時存在優勢。

過程能力指數Cp與Cpk計算公式

摘要 過程能力也稱工序能力 是指過程加工方面滿足加工質量的能力,它是衡量過程加工內在一致性的,最穩態下的最小波動。過程能力概述 過程能力也稱工序能力,是指過程加工方面滿足加工質量的能力,它是衡量過程加工內在一致性的,最穩態下的最小波動。當過程處於穩態時,產品的質量特性值有99.73 散布在區間 3 ...

Matlab多執行緒與多核運算, 以及GPU加速

matlab支援多執行緒多核運算,並且可用gpu加速 軟體版本 matlab2015a windows10 i7 4710hq 16g gtx860m 4g 1.matlab多執行緒.preference computer vision system toolbox 勾選 use parallel ...

多執行緒計算的優勢

為了能更好的體現效果這裡採用了乙個10000000的隨機數組求和 思路 include iostream include thread include math.h include time.h using namespace std void arr 1 void arr 2 int s 0 in...