一个 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
是正确的类型,但它可能取决于环境,所以我不太确定。