CUDA编程指南阅读笔记(五)

本文是CUDA编程指南的阅读笔记,聚焦于CUDA C Runtime的初始化和设备内存管理。介绍了CUDA设备内存的两种分配方式——线性内存和CUDA数组,强调了CUDA数组在纹理存取上的优化。详细讲解了cudaMalloc()、cudaFree()和cudaMemcpy()等函数的使用,以及如何通过cudaMallocPitch()和cudaMalloc3D()高效地分配二维和三维数组内存。最后,演示了访问全局变量的不同方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.  CUDA C语言编程接口

        接上篇文章继续写。

4.3 CUDA C Runtime

        CUDA C Runtime使用cudart动态链接库实现(cudart.dll或者cudart.so),运行时中所有的入口函数都以cuda为前缀。

4.3.1 初始化

        CUDA C Runtime函数库没有明确的初始化函数,在程序第一次调用Runtime库函数时它会自动初始化。因此,在记录Runtime函数调用时间和理解程序中第一个Runtime调用返回的错误代码时,需要将初始化考虑在内。
        在初始化期间,Runtime将会为系统中每一个设备创建一个CUDA上下文(类似CPU中进程的数据结构),这个上下文是设备的基本上下文,它被程序中所有的主机线程所共享。创建过程在后台运行,并且,Runtime将隐藏基本上下文使之对Runtime API这一层次的程序员不可见。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值