从库调用内核
优化了CUDA GPU金宝app编码器™支持库®gpu cuBLAS等cuSOLVER cuFFT,推力,cuDNN, TensorRT库。
cuBLAS图书馆是一个实现的基本线性代数NVIDIA (bla)上的子程序®CUDA运行时。它允许您访问NVIDIA GPU的计算资源。
cuSOLVER库是一个高级计划基于cuBLAS和cuSPARSE库。它提供了有用的LAPACK-like特性,比如常见的矩阵分解和三角解决例程稠密矩阵,稀疏最小二乘解算器,一个特征值求解器进行求解。
cuFFT库提供了一个高性能的实现快速傅里叶变换(FFT)算法在NVIDIA gpu。cuSOLVER, cuBLAS和cuFFT库是NVIDIA CUDA工具包的一部分。
推力是CUDA的c++模板库。推力库附带CUDA工具包和允许您利用GPU-accelerated原语等来实现复杂的高性能并行应用程序。
NVIDIA CUDA深层神经网络库(cuDNN)是一个GPU-accelerated库原语的深层神经网络。cuDNN为标准提供了高度调整实现例程如向前和向后卷积、池、归一化和活化层。NVIDIA的TensorRT是一个高性能的深度学习推理优化器和运行时库。有关更多信息,请参见通过使用cuDNN代码生成深度学习网络和通过使用TensorRT代码生成深度学习网络。
GPU编码器不需要一个特殊的编译指示生成内核调用库。在代码生成过程中,当您选择使cuBLAS选择在GPU编码器应用或使用config_object.GpuConfig。EnableCUBLAS = true
房地产在CLI, GPU编码器取代一些功能调用cuBLAS图书馆。当您选择使cuSOLVER选择在GPU编码器应用或使用config_object.GpuConfig。EnableCUSOLVER = true
房地产在CLI, GPU编码器取代一些功能调用cuSOLVER图书馆。对GPU编码器代替高级数学函数库调用,必须满足下列条件:
GPU-specific库替换为这些功能必须存在。
MATLAB®编码器™数据大小阈值必须满足。
GPU编码器支持cu金宝appFFT、cuSOLVER cuBLAS库表中列出的函数替代。在CUDA函数没有替代品,GPU编码器使用便携式MATLAB函数映射到GPU。
MATLAB函数 | 描述 | MATLAB编码器LAPACK支金宝app持 | cuBLAS、cuSOLVER cuFFT,推力的支持金宝app |
---|---|---|---|
|
矩阵相乘 |
是的 |
是的 |
|
解决系统的线性方程 |
是的 |
是的 |
|
LU矩阵分解 |
是的 |
是的 |
|
Orthogonal-triangular分解 |
是的 |
部分 |
|
矩阵的行列式 |
是的 |
是的 |
|
柯列斯基分解 |
是的 |
是的 |
|
互惠的条件数 |
是的 |
是的 |
|
解线性方程组 |
是的 |
是的 |
|
特征值和特征向量 |
是的 |
没有 |
|
舒尔分解 |
是的 |
没有 |
|
奇异值分解 |
是的 |
部分 |
|
快速傅里叶变换 |
是的 |
是的 |
|
逆快速傅里叶变换 |
是的 |
是的 |
排序数组元素 |
是的,使用 |
当您选择使cuFFT选择在GPU编码器应用或使用config_object.GpuConfig。EnableCUFFT = true
房地产在CLI, GPU编码器地图fft、传输线、fft2 ifft2 fftn.ifftn
函数调用在你的适当的cuFFT库调用MATLAB代码。对于二维变换和更高,GPU编码器创建多个一维成批的变换。这些批处理转换有更高的性能比单一的变换。GPU编码器只支持特立独行的变金宝app换。如果使cuFFT不是选择,GPU编码器使用CFFTW
库,使用MATLAB FFT或生成内核移植。单和双精度的数据类型都支持。金宝app输入和输出可以是真实的或复数,但实值转换速度更快。cuFFT库支持输入大小通常金宝app指定为2的乘方或值,可以分解成小的质数的乘积。一般质数因子越小,性能越好。
请注意
使用CUDA库名称等cufft
,cublas
,cudnn
你的MATLAB函数结果的名字在代码生成错误。
另请参阅
coder.gpu.kernel
|coder.gpu.kernelfun
|gpucoder.matrixMatrixKernel
|coder.gpu.constantMemory
|gpucoder.stencilKernel
|gpucoder.sort