6. Gomxsml使用说明
6.1. 简介
Go-mxsml是基于MXSML封装的一套Golang API程序开发库。使用这套开发库,可以对沐曦GPU设备进行状态查询和管理。
6.2. 安装
操作步骤
初始化
go.mod(如果已存在,跳过此步骤)。go mod init <your-module-name>
其中
module-name为当前项目的模块名,例如:go mod init my-mxsml-demo
安装依赖。
go get github.com/MetaX-MACA/go-mxsml@latest
若遇到模块名不匹配问题,可执行以下命令清理缓存后再尝试:
go clean -modcache && go mod tidy
在项目文件中导入包,即可调用接口。
import "github.com/MetaX-MACA/go-mxsml/pkg/mxsml"
6.3. 编程指南
用Golang语言导入go-mxsml包读取所有卡的信息,示例如下:
go
// main.go
package main
import (
"fmt"
"log"
"github.com/MetaX-MACA/go-mxsml/pkg/mxsml"
)
func main() {
ret := mxsml.MxSmlInit()
if ret != mxsml.MXSML_Success {
log.Fatal(mxsml.MxSmlGetErrorString(ret))
}
defer mxsml.MxSmlShutDown()
count := mxsml.MxSmlGetDeviceCount()
fmt.Printf("device count: %d\n", count)
for i := range count {
deviceInfo, ret := mxsml.MxSmlGetDeviceInfo(i)
if ret != mxsml.MXSML_Success {
fmt.Printf("get device info failed: %s\n", mxsml.MxSmlGetErrorString(ret))
continue
}
deviceId := deviceInfo.DeviceId
version, ret := mxsml.MxSmlGetDeviceVersion(deviceId, mxsml.MXSML_Version_Driver)
if ret != mxsml.MXSML_Success {
fmt.Printf("get driver version failed: %s\n", mxsml.MxSmlGetErrorString(ret))
} else {
fmt.Printf("device Id: %d, driver version: %s\n", deviceId, version)
}
}
}
运行example:
直接运行
go run main.go
编译成二进制(推荐在部署了MXMACA软件栈的服务器上执行)
go build -o example main.go ./example