作者rod5438 (逍遥仙人)
看板C_and_CPP
标题Re: [问题] c语言程式求助
时间Wed Oct 14 11:26:27 2009
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
1F:→ rod5438:上色不好 请多包含XD 10/14 11:27
※ 编辑: rod5438 来自: 140.123.106.44 (10/14 11:37)
2F:推 baddrink:87 10/14 11:39
3F:推 yoco315:XDDDDDDDDDDDDDDDDDDDDDDDDDDD 10/14 12:38
4F:推 Nuaaukw://目前只支援输入一笔 10/14 13:55
5F:→ Nuaaukw:开10万的阵列是开心酸的 还把10万个都丢进CUDA XDDDD 10/14 13:57
6F:推 suhorng:....................................... 10/14 21:39