当启用oneDNN和OpenBLAS时,wyoming-faster-whisper
无法启动,只能在启用OpenBLAS的情况下工作:NixOS/nixpkgs#237788(评论)
另一方面,libretranslate
在启用oneDNN和OpenBLAS时也会出错,只能在启用oneDNN的情况下工作:
[2023-06-15 09:09:43.116] [ctranslate2] [thread 535123] [warning] The compute type inferred from the saved model is int8, but the target device or backend do not support efficient int8 computation. The model weights have been automatically converted to use the float32 compute type instead.
[1] 535079 segmentation fault (core dumped)
这里有一个小表格:
| x86_64-linux | 仅启用oneDNN | 仅启用OpenBLAS | 两者都启用oneDNN和OpenBLAS |
| ------------ | ------------ | ------------ | ------------ |
| libretranslate | 正常工作 | 分段错误 | 分段错误 |
| wyoming-faster-whisper | RuntimeError | 正常工作 | RuntimeError |
4条答案
按热度按时间pokxtpni1#
并非所有后端组合都经过测试。
目标架构是什么?
jogvjijk2#
目标架构是什么?
我们希望尽可能支持所有架构。
在AArch64上使用oneDNN有什么原因不推荐吗?
iih3973s3#
是否没有理由不使用oneDNN在AArch64上?
据我所知,我们使用了执行缓慢的参考实现的函数
dnnl_sgemm
和dnnl_gemm_u8s8s32
。我们尽可能地支持所有架构。
如果性能不重要,你可以在任何地方使用OpenBLAS构建。然而,在大多数情况下,你需要为不同的架构选择不同的后端。
我建议查看我们为发布Python轮子库编译的方式:
https://github.com/OpenNMT/CTranslate2/blob/master/python/tools/prepare_build_environment_linux.sh
px9o7tmv4#
如果性能不重要,你可以在任何地方使用OpenBLAS构建。不幸的是,启用OpenBLAS的x86_64-linux上的libretranslate无法工作,因此这不是一个选项。