图书馆电话的内核
GPU CODER™支金宝app持针对CUDA优化的库®GPU,例如Cublas,Cusolver,Cufft,推力,Cudnn和Tensorrt库。
Cublas库是NVIDIA顶部的基本线性代数子程序(BLA)的实现®库达运行时间。它使您可以访问NVIDIA GPU的计算资源。
Cusolver库是基于Cublas和Cusparse库的高级软件包。它提供了有用的类似拉帕克的特征,例如致密矩阵,稀疏最小二乘求解器和特征值求解器的常见矩阵分解和三角形求解例程。
CUFFT库提供了NVIDIA GPU上快速傅立叶变换(FFT)算法的高性能实现。Cublas,Cusolver和Cufft库是NVIDIA CUDA工具包的一部分。
推力是CUDA的C ++模板库。推力库配备了CUDA工具包,并使您可以利用GPU加速原语,例如排序以实现复杂的高性能并行应用。
NVIDIA CUDA深神经网络图书馆(CUDNN)是用于深神经网络的GPU加速图书馆。Cudnn为标准例程提供了高度调整的实现,例如前向和向后卷积,合并,归一化和激活层。Nvidia张力是高性能深度学习推理优化器和运行时库。有关更多信息,请参阅使用Cudnn的深度学习网络代码生成和深度学习网络的代码生成。
GPU编码器不需要特殊的Pragma来生成库的内核调用。在代码生成过程中,当您选择启用CublasGPU编码器应用程序中的选项或使用config_object.gpuconfig.enablecublas = true
CLI中的属性,GPU编码器将某些功能替换为Cublas库的调用。当您选择启用CusolverGPU编码器应用程序中的选项或使用config_object.gpuconfig.enablecusolver = true
CLI中的属性,GPU编码器将某些功能替换为Cusolver库的调用。为了使GPU编码器将高级数学功能替换为库呼叫,必须满足以下条件:
这些功能必须存在GPU特定的库替换。
MATLAB®CODER™必须满足数据大小阈值。
GPU编码器支持表中金宝app列出的功能的Cufft,Cusolver和Cublas库替换。对于在CUDA中没有替换的功能,GPU编码器使用映射到GPU的便携式MATLAB函数。
MATLAB功能 | 描述 | MATLAB编码器拉帕克支持金宝app | Cublas,Cusolver,Cufft,推力支撑金宝app |
---|---|---|---|
|
矩阵倍增 |
是的 |
是的 |
|
线性方程的求解系统 |
是的 |
是的 |
|
lu矩阵分解 |
是的 |
是的 |
|
正交三角分解 |
是的 |
部分的 |
|
矩阵决定因素 |
是的 |
是的 |
|
Cholesky分解 |
是的 |
是的 |
|
相互状态编号 |
是的 |
是的 |
|
求解线性方程的系统 |
是的 |
是的 |
|
特征值和特征向量 |
是的 |
不 |
|
Schur分解 |
是的 |
不 |
|
奇异值分解 |
是的 |
部分的 |
|
快速傅立叶变换 |
是的 |
是的 |
|
逆快速傅立叶变换 |
是的 |
是的 |
排序数组元素 |
是的,使用 |
当您选择启用袖口GPU编码器应用程序中的选项或使用config_object.gpuconfig.enablecufft = true
在CLI中的属性,GPU编码器地图fft,ifft,fft2,ifft2,fftn.ifftn
MATLAB代码中的功能调用到适当的Cufft库调用。对于2-D变换和更高的变换,GPU编码器会创建多个1-D批次变换。这些批处理变换的性能比单个变换更高。GPU编码器仅支持实地转换。金宝app如果启用袖口未选择,GPU编码器使用CFFTW
可用的库或从便携式MATLAB FFT生成内核。支持单精度数据类型。金宝app输入和输出可以是真实的或复杂的,但是实现的转换速度更快。Cufft库支持输入尺寸通常金宝app被指定为2的功率或可以将其纳入较小素数的产品的值。通常,较小的主要因素,性能越好。
笔记
使用cuda库名称,例如袖口
,,,,库公共
, 和库丁
作为MATLAB函数的名称会导致代码生成错误。
也可以看看
coder.gpu.kernel
|coder.gpu.kernelfun
|gpucoder.matrixmatrixkernel
|coder.gpu.constantmemory
|gpucoder.stencilkernel
|gpucoder.sort