VPI - 视觉编程接口

3.2 版本

Context.h
前往此文件的文档。
1 /*
2  * 版权所有 2019-2021 NVIDIA Corporation。保留所有权利。
3  *
4  * 给被许可方的通知:
5  *
6  * 此源代码和/或文档(“许可交付物”)受美国和国际版权法项下的 NVIDIA 知识产权保护。
7  * 受美国和
8  * 国际版权法约束。
9  *
10  * 此处包含的这些许可交付物是 NVIDIA 的专有和机密信息,并根据 NVIDIA 与被许可方之间的 NVIDIA 软件许可协议(“许可协议”)条款和条件或被许可方以电子方式接受的协议提供。
11  * 机密信息,并根据条款和
12  * 条件提供,这些条款和条件来自 NVIDIA 和
13  * NVIDIA 和被许可方(“许可协议”)之间或以电子方式
14  * 被许可方接受的 NVIDIA 软件许可协议的形式。尽管许可协议中有任何相反的条款或条件,
15  * 许可协议中的相反条款或条件,复制或披露
16  * 未经 NVIDIA 明确书面同意,禁止将许可交付物披露给任何第三方。
17  * NVIDIA 的书面同意。
18  *
19  * 尽管许可协议中有任何相反的条款或条件,NVIDIA 对这些许可交付物对于任何特定用途的适用性不作任何陈述。
20  * 许可协议,NVIDIA 不对
21  * 这些许可交付物对于任何用途的适用性做任何声明。它是
22  * 按“原样”提供,不附带任何形式的明示或暗示保证。
23  * NVIDIA 声明不对这些许可交付物承担任何保证,包括所有关于适销性、非侵权性和适用于特定用途的暗示保证。
24  * 交付物的所有保证,包括所有关于适销性的暗示保证、
25  * 不侵权和适用于特定用途的保证。
26  * 尽管许可协议中有任何相反的条款或条件,在任何情况下,NVIDIA 均不对任何特殊的、间接的、偶然的或后果性的损害,或因使用、数据或利润损失而造成的任何损害承担责任,无论是在合同诉讼、疏忽或其他侵权行为中,因使用或执行这些许可交付物而引起或与之相关的行为。
27  * 许可协议,在任何情况下,NVIDIA 均不对任何
28  * 特殊的、间接的、附带的或后果性的损害,或任何
29  * 因使用、数据或利润损失而造成的任何损害承担责任,
30  * 无论是在合同诉讼、过失或其他侵权行为中
31  * 行为,因使用或与使用或性能相关而产生
32  * 这些许可交付物。
33  *
34  * 美国政府最终用户。这些许可交付物是“商业项目”,该术语在 48 C.F.R. 2.101(OCT 1995)中定义,包括“商业计算机软件”和“商业计算机软件文档”,这些术语在 48 C.F.R. 12.212(SEPT 1995)中使用,并且仅作为商业最终项目提供给美国政府。
35  * “商业项目”,该术语在 48 C.F.R. 2.101(OCT
36  * 1995)中定义,由“商业计算机软件”和“商业
37  * 计算机软件文档”组成,这些术语在 48
38  * C.F.R. 12.212(SEPT 1995)中使用,并提供给美国政府
39  * 仅作为商业最终产品。与 48 C.F.R. 12.212 和
40  * 48 C.F.R. 227.7202-1 至 227.7202-4(JUNE 1995)一致,所有
41  * 美国政府最终用户获取许可交付物时
42  * 仅具有此处规定的那些权利。
43  *
44  * 在个人和商业软件中使用许可交付物时,必须在用户文档和代码的内部注释中包含上述免责声明和美国政府最终用户声明。
45  * 软件必须在用户文档和内部
46  * 代码注释中包含上述免责声明和美国政府最终
47  * 用户声明。
48  */
49 
56 #ifndef NV_VPI_CONTEXT_H
57 #define NV_VPI_CONTEXT_H
58 
59 #include "Export.h"
60 #include "Status.h"
61 #include "Types.h"
62 #include "Version.h"
63 
64 #include <stdint.h>
65 
92 #ifdef __cplusplus
93 extern "C" {
94 #endif
95 
100 typedef struct CUctx_st *CUcontext;
101 
104 #define VPI_GLOBAL_CONTEXT ((VPIContext)0x610BA1C1D)
110 #define VPI_INVALID_CONTEXT ((VPIContext)-1)
111 
149 VPI_PUBLIC VPIStatus vpiContextCreate(uint64_t flags, VPIContext *ctx);
150 
187 VPI_PUBLIC VPIStatus vpiContextCreateWrapperCUDA(uint64_t flags, CUcontext cudaCtx, VPIContext *ctx);
188 
209 VPI_PUBLIC void vpiContextDestroy(VPIContext ctx);
210 
233 
248 
260 
274 
292 
307 
325 VPI_PUBLIC VPIStatus vpiContextGetFlags(VPIContext ctx, uint64_t *flags);
326 
327 #ifdef __cplusplus
328 }
329 #endif
330 
333 #endif /* NV_VPI_CONTEXT_H */
VPI 状态代码处理函数的声明。
定义使用 VPI 编程所需的所有类型。
用于处理 VPI 库版本的函数和结构。
VPIStatus vpiContextSetParallelFor(VPIContext ctx, const VPIParallelForConfig *config)
控制上下文拥有的 CPU 设备的底层任务并行性。
VPIStatus vpiContextCreate(uint64_t flags, VPIContext *ctx)
创建上下文实例。
VPIStatus vpiContextSetCurrent(VPIContext ctx)
为调用线程设置上下文。
VPIStatus vpiContextPush(VPIContext ctx)
将上下文推送到每个线程的上下文堆栈,并将此上下文设置为...
void vpiContextDestroy(VPIContext ctx)
销毁上下文实例及其拥有的所有资源。
VPIStatus vpiContextCreateWrapperCUDA(uint64_t flags, CUcontext cudaCtx, VPIContext *ctx)
创建包装 CUDA 上下文的上下文实例。
VPIStatus vpiContextGetParallelFor(VPIContext ctx, VPIParallelForConfig *config)
返回 vpiContextSetParallelFor 设置的参数。
VPIStatus vpiContextGetFlags(VPIContext ctx, uint64_t *flags)
获取当前上下文标志。
VPIStatus vpiContextGetCurrent(VPIContext *ctx)
获取调用线程的上下文。
VPIStatus vpiContextPop(VPIContext *ctx)
从每个线程的上下文堆栈中弹出一个上下文,并将其保存到 ctx 变量中。
struct VPIContextImpl * VPIContext
上下文的句柄。
定义: Types.h:238
存储 ParallelFor 配置。
定义: Types.h:199
VPIStatus
状态代码。
定义: Status.h:81