CUDA锁页内存的使用

1.定义指针变量

float   *host_Weights;  // 锁页内存
float   *dev_Weights;  // 设备端内存

2.分配内存

cudaHostAlloc((void**)&host_Weights, numInputs * sizeof(float), cudaHostAllocDefault);  // 用锁页内存,可以有效加快数据传递速度
cudaMalloc((void**)& dev_Weights, numInputs* sizeof(float));  // 设备端内存

3.主机端内存的使用

for (int kk = 0; kk < numInputs; kk++)
{
   
  host_Weights[kk] = bpnn->mNeuronLayers[i]->mWeights[j][kk];
}

4.内存的拷贝(同步拷贝)

cudaMemcpy(dev_Weights,host_Weights,numInputs*sizeof(float),cudaMemcpyHostToDevice);     // dev_Weights是目标,host_Weights是源

5.核函数的使用

getNeuron << <1, 1>> > (dev_ Weights);   // dev_Weights是指针,所以前面不加位

6.核函数的形参

__global__ void getNeuron(float *dev_Weights)
{
   
   // dev_Weights使用时按照指针使用
}

7.内存的销毁

cudaFree(dev_Weights);
cudaFreeHost(host_Weights);

相关推荐

  1. CUDA使用

    2023-12-14 10:58:02       37 阅读
  2. 分区

    2023-12-14 10:58:02       18 阅读
  3. php 使用yield生成器节省

    2023-12-14 10:58:02       16 阅读
  4. 寄存器、缓、硬盘、存储器理解

    2023-12-14 10:58:02       43 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-14 10:58:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-14 10:58:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-14 10:58:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-14 10:58:02       18 阅读

热门阅读

  1. 跨线程保持上下文

    2023-12-14 10:58:02       38 阅读
  2. linux的命令和vi的使用

    2023-12-14 10:58:02       33 阅读
  3. xtu oj 1271 color

    2023-12-14 10:58:02       37 阅读
  4. Ceph入门到精通-TCP和UDP相关的指标

    2023-12-14 10:58:02       26 阅读
  5. ceph-deploy 遇到的使用问题

    2023-12-14 10:58:02       39 阅读
  6. 堆和栈的区别

    2023-12-14 10:58:02       33 阅读
  7. 构造列表存储1000以内的素数

    2023-12-14 10:58:02       35 阅读
  8. 【Django-03】模型常用的增删改查

    2023-12-14 10:58:02       32 阅读
  9. 【Git使用总结】

    2023-12-14 10:58:02       39 阅读
  10. debian12 最小化安装桌面 i3wm

    2023-12-14 10:58:02       36 阅读
  11. 算法训练营Day15(二叉树)

    2023-12-14 10:58:02       42 阅读