blas 是一款开发包收集器,为 Go 语言提供
BLAS 功能
。
安装:
go get github.com/gonum/blas
BLAS C-绑定:
如果你想使用 OpenBLAS,可在任何目录安装(更多信息,可在
cgo command documentation中查看):
git clone https://github.com/xianyi/OpenBLAS cd OpenBLAS make
然后安装BLAS/ CGO包:
CGO_LDFLAGS="-L/path/to/OpenBLAS -lopenblas" go install github.com/gonum/blas/cgo
如果要使用不同的BLAS包如Intel MKL可以调整CGO LDFLAGS变量:
CGO_LDFLAGS="-lmkl_rt" go install github.com/gonum/blas/cgo
在OS X上最简单的解决方案是使用系统提供的文库:
CGO_LDFLAGS="-framework Accelerate" go install github.com/gonum/blas/cgo
开发包:
blas:定义了多个接口BLAS API接口。
blas/native:Go 实施BLAS API的(不完全实现了FLOAT32和float64 API)。
blas/cgo:
绑定到
C实现 cblas接口(如ATLAS,OpenBLAS,英特尔 MKL),OpenBLAS是为Linux和Darwin良好性能的最佳推荐。
blas/blas64 and blas/blas32:该BLAS API为双(i.e., float64) 和单 (float32)精准的实施提供打包:
package mainimport ( "fmt" "github.com/gonum/blas/blas64")func main() { v := blas64.Vector{Inc: 1, Data: []float64{1, 1, 1}} fmt.Println("v has length:", blas64.Nrm2(len(v.Data), v)) }
blas/cblas128 and blas/cblas64:该BLAS API为双(即complex128)和单的实现封装(complex64)精密复杂零件。
###