Re: [問題] c語言程式求助
CUDA版
__global__ void VecAdd(float* A)
{
int i = blockIdx.x*blockDim + threadIdx.x*; //把所有核心給予Index
A[i]/=0.454; //公斤轉換成磅
}
int main()
{
int i; //總人數
size_t size = 100000 * sizeof(float); //記憶體空間
float h_A[100000]; //主記憶體重資料(十萬筆)
float* d_A; //GPU記憶體指標
for(i=0;i<1;i++)
{
cout<<"請輸入體重(公斤)"<<endl; //使用者輸入體重
cin>>h_A[i]; //目前只支援輸入一筆
}
cudaMalloc((void**)&d_A, size); //動態存取顯示卡記憶空間
cudaMemcpy(d_A, h_A, size, cudaMemcpyHostToDevice);//主記憶體複製到顯卡
int threadsPerBlock = 256; //開了256個程序
int threadsPerGrid = 256; //開了256個核心
VecAdd<<<threadsPerGrid, threadsPerBlock>>>(d_A);//理論上可以同步處理
//65536個程序
cudaMemcpy(h_A, d_A, size, cudaMemcpyDeviceToHost);//顯卡複製到主記憶體
cudaFree(d_A); //釋放顯卡記憶體
for(i=0;i<1;i++)
{
cout<<"你的體重是"<<h_A[i]<<"磅"<<endl;//印出你的體重
//目前只支援印出一筆
}
return(0); //就只是return零
}
///////////////////版權沒有 歡迎複製 不用告知 不保證能跑XDD////////////////
//P.S. 原po第二個作業 可能是輸入10個 人的體重 你只要五秒就可以改完!!
//P.S.1 而且支援 平行運算 所以1000萬人也可以算很快
//P.S.3 但是你主幾版BUS沒很快的話應該還是算很慢XD
//P.S.4 一定要有 支援CUDA的顯示卡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.123.106.44
→
10/14 11:27, , 1F
10/14 11:27, 1F
※ 編輯: rod5438 來自: 140.123.106.44 (10/14 11:37)
推
10/14 11:39, , 2F
10/14 11:39, 2F
推
10/14 12:38, , 3F
10/14 12:38, 3F
推
10/14 13:55, , 4F
10/14 13:55, 4F
→
10/14 13:57, , 5F
10/14 13:57, 5F
推
10/14 21:39, , 6F
10/14 21:39, 6F
討論串 (同標題文章)