cuda
文章平均质量分 52
洪流之源
这个作者很懒,什么都没留下…
展开
-
CUDA RUNTIME
cuda runtime是以cuda driver为基准开发的运行时库,driver API更为底层一些,对一般用户不是很友好,例如需要做显式的device初始化,以及context、module的管理。但是使用更为灵活,提供一些runtime API所没有的功能,毕竟runtime API的功能都是包装driver 的功能实现的。而runtime API把driver API包装了一些,将很多原本需要代码编写的步骤(比如说上面的device初始化)自动完成了,因此会更加容易上手。当调用第一个cuda原创 2022-04-11 14:59:40 · 4676 阅读 · 1 评论 -
CUDA 内存访问
在Host端的内存,逻辑上可分为Pageable Memory(可分页内存)、Page Lock Memory(页锁定内存),Page Lock Memory又称为Pinned Memory,从字面意思上而言Page Lock Memory是锁定的内存,一旦申请后就专供申请者使用,Pageable Memory则没有锁定特性,申请后可能会被交换。总结如下:pinned memory具有锁定特性,是稳定不会被交换的; pageable memory没有锁定特性,对于第三方设备(比如GPU),去访问时原创 2022-04-11 11:52:49 · 1891 阅读 · 0 评论 -
CUDA Driver API 上下文管理
CUDA中的上下文context是为了方便控制device而提出的,而context通过栈进行管理:context是一种上下文,关联对GPU的所有操作,context与一块显卡关联,一个显卡可以被多个context关联; 每个线程都有一个栈结构储存context,栈顶是当前使用的context,对应有push、pop函数操作context的栈,所有api都以当前context为操作目标;cuCreateContext、cuPushCurrent、cuPopCurrent函数实现context的创原创 2022-04-04 20:39:09 · 2847 阅读 · 0 评论 -
CUDA Driver API 获取驱动版本、设备信息
主要包括如下功能:1. cuda初始化CUresult CUDAAPI cuInit(unsigned int Flags);这里的flags目前必须给0,对于cuda的所有函数,必须先调用cuInit,否则其他API都会返CUDA_ERROR_NOT_INITIALIZED,可参考链接:https://docs.nvidia.com/cuda/archive/11.2.0/cuda-driver-api/group__CUDA__INITIALIZE.html2. 获取驱动版本C.原创 2022-04-04 19:49:53 · 1424 阅读 · 0 评论