核心 NPP 函数

用于库管理的基本函数,特别是库版本和设备属性查询函数。

函数

const NppLibraryVersion *nppGetLibVersion(void)

获取 NPP 库版本。

返回值

一个结构体,包含主版本号、次版本号和构建号的独立值。

int nppGetGpuNumSMs(void)

获取活动 CUDA 设备上的流式多处理器 (SM) 的数量。

返回值

默认 CUDA 设备的 SM 数量。

int nppGetMaxThreadsPerBlock(void)

获取活动 CUDA 设备上每个块的最大线程数。

返回值

活动 CUDA 设备上每个块的最大线程数。

int nppGetMaxThreadsPerSM(void)

获取活动 GPU 上每个 SM 的最大线程数。

返回值

活动 GPU 上每个 SM 的最大线程数

int nppGetGpuDeviceProperties(int *pMaxThreadsPerSM, int *pMaxThreadsPerBlock, int *pNumberOfSMs)

获取活动 GPU 上每个 SM 的最大线程数、每个块的最大线程数和 SM 的数量。

返回值

成功返回 cudaSuccess,失败返回 -1

const char *nppGetGpuName(void)

获取活动 CUDA 设备的名称。

返回值

系统中活动显卡/计算设备的名称字符串。

cudaStream_t nppGetStream(void)

获取 NPP CUDA 流。

NPP 通过全局流状态变量启用并发设备任务。默认情况下,NPP 流设置为流 0,即非并发模式。用户可以将 NPP 流设置为任何有效的 CUDA 流。NPP 发出的所有 CUDA 命令(例如,NPP 库启动的内核)都将发送到该 NPP 流。

NppStatus nppGetStreamContext(NppStreamContext *pNppStreamContext)

获取通过调用 nppSetStream() 设置的当前 NPP 管理的 CUDA 流上下文。

NPP 通过 NPP 维护的全局流状态上下文启用并发设备任务。默认情况下,NPP 流设置为流 0,即非并发模式。用户可以将 NPP 流设置为任何有效的 CUDA 流,这将更新当前 NPP 管理的流状态上下文,或向 NPP 调用提供应用程序初始化的流上下文。NPP 发出的所有 CUDA 命令(例如,NPP 库启动的内核)都将发送到当前 NPP 管理的流或应用程序提供的流上下文,具体取决于是否将流上下文传递给 NPP 函数。NPP 管理的流上下文调用(那些没有流上下文参数的调用)可以与应用程序管理的流上下文调用混合使用,但任何 NPP 管理的流上下文调用都将始终使用 nppSetStream() 设置的最新流,或者如果从未调用 nppSetStream(),则使用 NULL 流。

unsigned int nppGetStreamNumSMs(void)

获取与当前 NPP CUDA 流关联的设备上的 SM 数量。

NPP 通过全局流状态变量启用并发设备任务。默认情况下,NPP 流设置为流 0,即非并发模式。用户可以将 NPP 流设置为任何有效的 CUDA 流。NPP 发出的所有 CUDA 命令(例如,NPP 库启动的内核)都将发送到该 NPP 流。此调用避免了 cudaGetDeviceProperties() 调用。

unsigned int nppGetStreamMaxThreadsPerSM(void)

获取与当前 NPP CUDA 流关联的设备上每个 SM 的最大线程数。

NPP 通过全局流状态变量启用并发设备任务。默认情况下,NPP 流设置为流 0,即非并发模式。用户可以将 NPP 流设置为任何有效的 CUDA 流。NPP 发出的所有 CUDA 命令(例如,NPP 库启动的内核)都将发送到该 NPP 流。此调用避免了 cudaGetDeviceProperties() 调用。

NppStatus nppSetStream(cudaStream_t hStream)

设置 NPP CUDA 流。

如果 Cuda 流管理出现问题,此函数现在会返回错误。只有当调用 nppGetStream() 返回的流号与所需流不同时,才应调用此函数,因为不必要地刷新当前流可能会显著影响性能。

另请参阅

nppGetStream()