一个 Swift 封装库,用于 C 语言库 libopenblas-dev 和 liblapacke-dev。 它们提供了各种矩阵和硬件加速的线性代数运算。 在 MacOS 上,此功能由 Accelerate 提供。 然而,Accelerate 无法在 Linux 环境中运行。 因此有了 COpenBlas。 目前,COpenBlas 仅支持 64 位 arm Linux 环境。 我没有其他机器可以测试,所以如果你下载后无法编译,可能是 module.modulemap 需要添加一个包含适用于你的环境的正确头文件的条目。
在 Mac 上,无需安装。 使用编译器指令检查 Accelerate 是否可用,如果可用则不要导入 COpenBlas。
在 Linux 上,运行 apt-get install libopenblas-dev 和 apt-get install liblapacke-dev (注意 'lapacke' 中的 'e')。 现在你应该可以构建 COpenBlas 了。
Package.swift 文件中,在 dependencies 数组中添加 .package(url: "https://github.com/CooperCorona/COpenBlas.git", from: "1.0.0") (或者任何你想要使用的版本)。 然后,在每个目标的 dependencies 数组中,添加 COpenBlas。#if os(macOS)
import Accelerate
#else
import COpenBlas
// Optional
private typealias __CLPK_integer = Int32
#endif
Accelerate 只存在于 Mac 上,而 COpenBlas 只存在于 Linux 上。 __CLPK_integer 类型别名由 Accelerate 定义。 如果你使用它,你可能需要自己定义它。 警告: 我认为 Int32 是正确的类型,但它可能取决于环境,所以我不太确定。