2. 版本申明

版本

修改内容

修改时间

v1.0

初始版本,新增使用方法

8/12/2022

v1.1

更新go版本

1/23/2024

v1.2

更新一些格式与内容

4/8/2024

v1.3

更新一些格式

4/9/2024

v1.4

更新前置依赖

7/9/2024

3. 简介

go-eflib 是基于Enflame Management Library (EFML) 的golang开发库,经过对efml的二次封装提供GCU设备管理golang API,从而给开发者用户提供了enflame GCU 的设备管理golang接口。

4. 前置依赖

  • GCU Driver

  • efsmi

5. 使用配置

5.1. go.mod配置

go-eflib 添加到 golang项目的 go.mod文件里, 例如:

module modulename

go 1.22

require (
    go-eflib v1.0.0
)

5.2. vendor配置

先将go-eflib 整个目录复制到golang项目的vendor目录下,例如:

# ls vendor/
github.com  go-eflib  golang.org  google.golang.org  gopkg.in  k8s.io  modules.txt

同时将 go-eflib 添加到 vendor/modules.txt 里, 例如:

# go-eflib v1.0.0
## explicit
go-eflib
go-eflib/efml

5.3. import导入

编写代码时需要将go-eflib导入文件内,例如:

package metrics

import (
    "strconv"

    "go-eflib"
    "go-eflib/efml"
)

如果添加了 go-eflib/efml 但是 文件里没用上,会出现类似以下的error信息:

imported and not used: "go-eflib/efml"

那么就在import里删除 go-eflib/efml这一行。

5.4. 代码示例

参考 目录下的 samples/metrics.go

6. 常见问题

1)libefml.so版本兼容问题

默认采用主机上的libefml.so,因此需要保证主机上已安装libefml.so。如果是ARM平台 存在 libefml-arm.so。 建议执行 ln -sf /usr/lib/libefml-arm.so /usr/lib/libefml.so 保证 /usr/lib/libefml.so 库名称可兼容。

2)是否提供API介绍说明

推荐直接看代码以及编程samples示例。