6. Gomxsml使用说明

6.1. 简介

Go-mxsml是基于MXSML封装的一套Golang API程序开发库。使用这套开发库,可以对沐曦GPU设备进行状态查询和管理。

6.2. 安装

操作步骤

  1. 初始化 go.mod (如果已存在,跳过此步骤)。

    go mod init <your-module-name>
    

    其中 module-name 为当前项目的模块名,例如:

    go mod init my-mxsml-demo
    
  2. 安装依赖。

    go get github.com/MetaX-MACA/go-mxsml@latest
    

    若遇到模块名不匹配问题,可执行以下命令清理缓存后再尝试:

    go clean -modcache && go mod tidy
    
  3. 在项目文件中导入包,即可调用接口。

    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