cuda dirver API总结

本文总结了CUDA的Driver API,介绍了核心概念如context、module和kernel launch,并探讨了其与Runtime API的交互。CUDA context是CPU线程与GPU资源的绑定,module用于加载kernel,而kernel launch涉及函数参数传递。此外,Driver API与Runtime API可以混合使用,实现内存和操作的互操作性,增强了CUDA程序的灵活性。

在这里简单总结一下driver API的大致特点,主要是解释其中几个重要的概念。

下面是driver API中几个常见的术语:

这里写图片描述

dirver API的核心为定义了一系列object,通过handle来显式控制object。

context
context类比CPU process,resource以及其他action被封装在context中,每个CPU thread每个时刻只能有一个current context。context可通过cuCtxCreate()来创建,cuCtxCreate()会将创建的context push到该host thread的context stack的top,使其成为当前host thread的current context。同时,每个context都有一个counter,记录其被多少个thread引用。counter在cuCtxCreate()时初始化为1,之后每被一个thread通过cuCtxAttach()引用一次,则usage count加1,每被cuCtxDetach()一次,count减1,当减为0时该context会被销毁。
与cuCtxCreate()功能相反的一个函数为: cuCtxDestroy();
通过cuCtxPopCurrent()可以将当前host thread的current context解耦成为float context,被解耦的context之后可被其他thread设置为current current(通过cuCtxPushCurrent())。

如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值