系列文章目录
前言
这里开始跟大家分享CUDA内存管理相关的知识。
一、内存管理相关概念
这里主要介绍如何使用CUDA函数来显示管理内存和数据移动。
CUDA提供了在主机端准备设备内存的函数,并且显示的向设备传输数据和从设备中获取数据。
1. 内存分配和释放
在主机上使用如下函数分配全局内存:
c u d a E r r o r t c u d a M a l l o c ( v o i d ∗ ∗ d e v P t r , s i z e _ t c o u n t ) ; cudaError_t cudaMalloc(void**\ devPtr, size\_t\ count); cudaErrortcudaMalloc(void∗∗ devPtr,size_t count);
c u d a M a l l o c cudaMalloc cudaMalloc函数执行失败则返回 c u d a E r r o r M e m o r y A l l o c a t i o n cudaErrorMemoryAllocation cudaErrorMemoryAllocation,在已分配的全局内存中的值不会被清除,需要从主机上传输的数据来填充所分配的全局内存,或用下列函数将其初始化:
c u d a E r r o r t c u d a M e m s e