从库调用内核

GPU编码器™支持库C万博1manbetxUDA优化®例如cuBLAS、cuSOLVER、cuFFT、Thrust、cuDNN和TensorRT等图形处理器库。

  • 该CUBLAS库是基本线性代数子程序对NVIDIA的顶部实现(BLAS)®CUDA运行时。它允许你访问NVIDIA GPU的计算资源。

  • 所述cuSOLVER文库是基于所述CUBLAS和cuSPARSE文库的高级封装。它提供了有用LAPACK状特征,如共同矩阵分解和三角求解稠密矩阵例程,稀疏最小二乘解算器,以及一个特征值解算器。

  • 该CUFFT库提供在NVIDIA GPU的快速傅立叶变换(FFT)算法的高性能实现。该CUBLAS,cuSOLVER和CUFFT库是NVIDIA CUDA工具包的一部分。

  • Thrust是一个用于CUDA的c++模板库。推力库随CUDA工具包一起提供,允许您利用gpu加速的原语(如sort)来实现复杂的高性能并行应用程序。

  • 在NVIDIA CUDA深层神经网络库(cuDNN)是原语深层神经网络的GPU加速的库。cuDNN提供高度调整为标准例程诸如向前和向后卷积,池,归一化,和活性层的实施方式。TheNVIDIATensorRT是一个高性能的深度学习推理优化器和运行时库。有关更多信息,请参见代码生成深学习网络利用cuDNN代码生成深学习网络利用TensorRT

GPU编码器不需要一个特殊的pragma来生成对库的内核调用。在代码生成过程中,当您选择使cuBLAS选项在GPU编码器应用程序或使用config_object.GpuConfig.EnableCUBLAS =真在CLI性能,GPU编码器替换调用的CUBLAS库中的某些功能。当您选择启用cuSOLVER选项在GPU编码器应用程序或使用config_object.GpuConfig。EnableCUSOLVER = true在CLI性能,GPU编码器替换调用的cuSOLVER库中的某些功能。对于GPU编码器,以取代高层次的数学函数库调用,下面的条件必须满足:

  • GPU专用库替换必须存在这些功能。

  • MATLAB®编码器™数据大小的阈值必须满足。

GPU编码器支持cu万博1manbetxFFT, cuSOLVER和cuBLAS库替换表中列出的函数。对于没有替代CUDA的函数,GPU编码器使用可移植的MATLAB函数,映射到GPU。

MATLAB功能 描述 MATLAB编码器LAPACK支万博1manbetx持 CUBLAS,cuSOLVER,CUFFT,推力支持万博1manbetx

mtimes

矩阵相乘

mldivide(“\”)

解线性方程组Ax = b的对于X

LU矩阵分解

QR

Orthogonal-triangular分解

局部

DET

矩阵的行列式

发票

矩阵求逆

CHOL

Cholesky分解

rcond

倒数条件数

linsolve

求解线性方程组的系统Ax = b的

EIG

特征值和特征向量

没有

舒尔

舒尔分解

没有

SVD

奇异值分解

局部

FFT,FFT2,FFTN

快速傅立叶变换

IFFT,ifft2,ifftn

快速反傅里叶变换

排序

排序的数组元素

是的,使用gpucoder.sort

当您选择启用CUFFT选项在GPU编码器应用程序或使用config_object.GpuConfig.EnableCUFFT =真属性在CLI, GPU编码器映射fft、传输线、fft2 ifft2 fftn.ifftn在您的MATLAB代码到适当的CUFFT库调用函数调用。对于2-d变换和更高,GPU编码器创建的多个1-d分批变换。这些成批转换具有比单变换更高的性能。GPU编码器只支持外的地方变换万博1manbetx。如果启用CUFFT没有被选择,GPU编码器采用CFFTW从可移植的MATLAB FFT生成内核的库。支持单精度和双精度数据类型。万博1manbetx输入和输出可以是实值的,也可以是复值的,但是实值转换更快。cuFFT库支持输入大小,这万博1manbetx些输入大小通常指定为2的幂,或者可以分解成小素数的乘积的值。一般来说,质因数越小,性能越好。

注意

使用CUDA库的名称,如cufftCUBLAS,cudnn为您的MATLAB函数结果的代码生成错误的名称。

也可以看看

|||||

相关的话题