zoukankan      html  css  js  c++  java
  • cuda编程学习2——add

    cudaMalloc()分配的指针有使用限制,设备指针的使用限制总结如下:

    1.可以将其传递给在设备上执行的函数

    2.可以在设备代码中使用其进行内存的读写操作

    3.可以将其传递给在主机上执行的函数

    4.不能在主机代码中使用其进行内存的读写操作

    总的来说就是主机指针只能访问主机代码中的内存,设备指针只能访问设备代码中的内存

    这是两个数相加的cuda代码:

    #include<iostream>
    using namespace std;

    __global__ void add(int a,int b,int *c)
    {
    *c=a+b;
    }

    int main(void)
    {
    int c;
    int *dev_c;
    cudaError_t error;
    error=cudaMalloc((void**)&dev_c,sizeof(int));
    if(error!= cudaSuccess)
    {
    cout<<"cudaMalloc d_A returned error"<<cudaGetErrorString(error)<<"code:"<<error<<" line"<<__LINE__<<endl;
    exit(EXIT_FAILURE);
    }
    add<<<1,1>>>(2,7,dev_c);
    error=cudaMemcpy(&c,dev_c,sizeof(int),cudaMemcpyDeviceToHost);
    if(error!= cudaSuccess)
    {
    cout<<"cudaMemcpy returned error:"<<cudaGetErrorString(error)<<" code:"<<error<<" line:"<<__LINE__<<endl;
    exit(EXIT_FAILURE);
    }
    cout<<"2+7="<<c<<endl;
    cudaFree(dev_c);
    return 0;
    }

  • 相关阅读:
    ie条件注释
    css3之图片一闪而过特效
    css帧动画之图片发亮
    css3动画
    解决ie6不兼容透明图片
    jquery实现拖拽的效果
    原生js实现拖拽弹框的效果
    C++学习笔记十之连接数据库
    C++学习笔记九之异常处理
    C++学习笔记八之STL内置算法
  • 原文地址:https://www.cnblogs.com/shrimp-can/p/5031116.html
Copyright © 2011-2022 走看看