cuDNN学习笔记(2)-- 常用数据类型和API函数

本文介绍了cuDNN中常用的数据类型cudnnDataType_t和cudnnConvolutionFwdAlgo_t,以及cudnnGetConvolutionForwardWorkspaceSize(), cudnnConvolutionForward()和cudnnGetConvolutionForwardAlgorithm_v7()等API函数的用法和注意事项,包括错误处理和算法选择。" 117524953,10539084,Android辅助权限与悬浮窗实现详解,"['Android开发', '权限管理', '悬浮窗', '服务']
摘要由CSDN通过智能技术生成


本篇列举在darknet代码研读过程中遇到的常用数据类型和API函数。

2021.08.08更新

数据类型:cudnnDataType_t

cudnnDataType_t是darknet的cudnn_convolutional_setup()函数中出现的一个数据类型。
它是一个枚举型,指示张量描述符(tensor descriptor)或筛选器描述(filter descriptor)符所引用的数据类型。

说明
CUDNN_DATA_FLOAT 32位单精度浮点数
CUDNN_DATA_DOUBLE 64位双精度浮点数
CUDNN_DATA_HALF 16位浮点数
CUDNN_DATA_INT8 8位有符号整型
CUDNN_DATA_UINT8 8位无符号整型
CUDNN_DATA_INT32 32位有符号整型
CUDNN_DATA_INT8x4 32位元素,包含4个8位有符号整形。此数据类型仅支持张量格式CUDNN_TENSOR_NCHW_VECT_C
CUDNN_DATA_INT8x32 32位元素向量,每个元素包含4个8位有符号整形。此数据类型仅支持张量格式CUDNN_TENSOR_NCHW_VECT_C,而且此数据类型只能用于algo 1,即CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM。关于更多信息参考cudnnConvolutionFwdAlgo_t数据类型。
CUDNN_DATA_UINT8x4 32位元素,包含4个8位无符号整形。此数据类型仅支持张量格式

数据类型:cudnnConvolutionFwdAlgo_t

cudnnConvolutionFwdAlgo_t 是一个枚举型,是一种枚举类型,表示可用于执行前向卷积运算的不同算法。都是用于执行卷积,可以根据卷积数据的实际情况选择合适的类型。
卷积的计算经常需要一个工作区,即workspace,来存储输入、输出、索引、中间量等数据。

说明
CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM 该算法将卷积表示为矩阵积,而并不实际显式地构造一个保存输入张量数据的矩阵。
CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM 该算法将卷积表示为矩阵积,而并不实际显式地构造保存输入张量数据的矩阵,但仍需要一些内存工作空间来预先计算索引,以便隐式构造保存输入张量数据的矩阵。
CUDNN_CONVOLUTION_FWD_ALGO_GEMM 该算法将卷积表示为显式矩阵积。需要一个内存工作区来存储保存输入张量数据的矩阵。
CUDNN_CONVOLUTION_FWD_ALGO_DIRECT 该算法将卷积表示为直接卷积(例如,它并不隐式或显式执行矩阵乘法)。
CUDNN_CONVOLUTION_FWD_ALGO_FFT 该算法使用快速傅里叶变换方法计算卷积。需要一个重要的内存工作区来存储中间结果。
CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING 该算法使用快速傅里叶变换方法,但将输入分割成块。存储中间结果需要一个重要的内存工作空间,但对于大尺寸图像,该工作空间小于CUDNN_CONVOLUTION_FWD_ALGO_FFT
CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD 该算法使用Winograd变换方法来计算卷积。需要一个大小合理的工作空间来存储中间结果。
CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED 该算法使用Winograd变换方法来计算卷积。可能需要一个较大的专门的工作空间来存储中间结果。

API函数:cudnnGetConvolutionForwardWorkspaceSize()

此函数返回用户需要分配的GPU内存工作空间的尺寸,以便能够使用指定的算法调用cudnnColutionForward()。

cudnnStatus_t cudnnGetConvolutionForwardWorkspaceSize(
	cudnnHandle_t handle,//输入量:前期创建的cuDNN句柄
	const 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北溟客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值