看板 C_and_CPP 關於我們 聯絡資訊
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
rod5438:上色不好 請多包含XD 10/14 11:27
※ 編輯: rod5438 來自: 140.123.106.44 (10/14 11:37)
baddrink:87 10/14 11:39
yoco315:XDDDDDDDDDDDDDDDDDDDDDDDDDDD 10/14 12:38
Nuaaukw://目前只支援輸入一筆 10/14 13:55
Nuaaukw:開10萬的陣列是開心酸的 還把10萬個都丟進CUDA XDDDD 10/14 13:57
suhorng:....................................... 10/14 21:39