speechbrain.utils.quirks 模块
全局变化和平台/GPU特定的怪癖,即变通方法和更合理的默认值,有时是由于平台特定的问题。
- Author:
Sylvain de Langen 2024
摘要
函数:
在CUDA后端(可能包括ROCm),启用CuDNN和矩阵乘法运算符的TensorFloat32支持。 |
|
根据平台应用特定的调整。 |
|
禁用CuDNN基准测试。 |
|
禁用JIT分析以避免在高度动态的形状上出现性能问题。 |
|
记录由 |
参考
- speechbrain.utils.quirks.disable_cudnn_benchmarking()[source]
禁用CuDNN基准测试。在默认情况下已经关闭的平台上无操作。
基准测试,当启用时,理论上通过自动比较某些操作的不同内核来提高卷积性能。
然而,基准测试必须为每个独特的输入形状重新运行,这使得它不适合高度动态的形状。 由于SpeechBrain确实倾向于使用非常多样化的形状而不尝试填充差异,保持基准测试开启可能会严重降低训练性能。
此函数禁用它,因为我们认为不进行基准测试是一个更明智的默认设置,以避免当前出现性能问题。
截至 PyTorch 2.3.0,CUDA GPU 的默认值为
False,但 HIP GPU 的默认值为True。HIP 的等效于 CuDNN 的是 MIOpen,但它通过相同的 PyTorch API 进行控制。
- speechbrain.utils.quirks.allow_tf32()[source]
在CUDA后端(可能包括ROCm),启用TensorFloat32支持用于CuDNN和矩阵乘法运算符。
这允许在较低精度下透明地执行某些操作,即使在不使用AMP的情况下进行fp32数学运算时,否则张量核心将不会被使用。TF32支持累积到fp32,因此溢出的担忧有所缓解。
在NVIDIA GPU上,自Ampere架构(例如A100)起,此功能可用。
详情请参阅PyTorch文档。
- speechbrain.utils.quirks.KNOWN_QUIRKS = {'allow_tf32': <function allow_tf32>, 'disable_cudnn_benchmarking': <function disable_cudnn_benchmarking>, 'disable_jit_profiling': <function disable_jit_profiling>}
应用的怪癖列表。由
apply_quirks填充。
- speechbrain.utils.quirks.applied_quirks = {'allow_tf32', 'disable_jit_profiling'}
排除的怪癖列表。由
apply_quirks从SB_DISABLE_QUIRKS环境变量填充,该变量是一个逗号分隔的要禁用的怪癖列表。