寒武纪GPU测试
-
https://developer.cambricon.com/

一,硬件情况调研
仪享这边的环境是 MLU270 220用于边缘 290是最新7nm工艺
270这个卡和我们R740上面的T4卡性能接近:

二,软件情况调研

寒武纪推荐的人工智能开发流程:

CNML的基本算子:

CNRT包括的功能:

对Tensorflow的适配:

lspci -v -d:270 //查看硬件是否正常
//安装驱动 ubuntu 或者 centos
sudo dpkg -i neuware-mlu270-driver-dkms_4.1.1_all.deb
sudo rpm -ivh neuware-mlu270-driver-4.1.1-1.x86_64.rpm
//查看驱动情况
cnmon
//用docker来测试相关命令
sudo docker load< ubuntu-16.04-mlu270-image

//安装软件
dpkg -i neuware-mlu270-1.3.0-1_Ubuntu16.04_amd64.deb
//安装sdk
cd /var/neuware-mlu270-1.3.0
dpkg -i *.deb
//检查安装
apt show neuware-mlu270
//软件栈的结构

-
BANG语言



-
https://www.cambricon.com/docs/driver/index.html
驱动安装手册
目前驱动已经支持主流Linux发行版系统(CentOS/Ubuntu),提供驱动安装包如下:CentOS系统,驱动安装包名称为neuware-mluxxx-driver-***-1.x86_64.rpm,支持CentOS 7.4(3.10.0-862)、CentOS 7.6(3.10.0-957)。
Ubuntu系统和Debian系统,驱动安装包名称为neuware-mluxxx-driver-dkms_***_all.deb,支持Ubuntu 16.04(4.4.0-112)、Ubuntu 18.04(4.15.0-32)、Debian 10.1(4.19.0-6)、Debian 9.8(4.14.138)。
- mluxxx代表产品型号,比如:mlu220,mlu270。
- ***代表当前驱动版本号,比如:4.0.3。
dpkg方式 安装一个deb软件包的命令如下: sudo dpkg -i <package.deb> 查看deb软件包是否已经安装的命令如下: dpkg -s <package.deb> 移除一个已安装的deb软件包的命令如下: sudo dpkg -r <package.deb> 完全清除一个已安装的deb软件包的命令如下: dpkg -P <package.deb> apt方式 安装一个deb软件包的命令如下: sudo apt install <package.deb> 查看deb软件包是否已经安装的命令如下: apt list <package.deb> 查看安装包详细信息的命令如下: apt show <package.deb> 移除一个已安装的包的命令如下: sudo apt remove <package.deb> 完全清除一个已安装的包的命令如下: sudo apt purge <package.deb>CentOS系统在安装rpm包之前,若系统中有dpkg工具,需要先卸载dpkg工具,该工具与rpm包存在冲突。
rpm方式 安装rpm软件包的命令如下: sudo rpm -ivh <package.rpm> 升级rpm软件包的命令如下: sudo rpm -Uvh <package.rpm> 移走rpm软件包的命令如下: sudo rpm -e <package.rpm> 查看rpm软件包是否已安装的命令如下: rpm -q <package.rpm> 查看rpm软件包详细信息的命令如下: rpm -qi <package.rpm> 查看包中的文件的命令如下: rpm -ql <package.rpm> 安装参数如下: - -force:强制安装当前rpm包。 - -nodeps:如果该rpm包的安装依赖其他包,即使依赖包没有安装,rpm包也强制安装。 - -replacefiles:无论rpm包是否安装,都强行安装当前rpm包。 yum方式 安装rpm软件包的命令如下: sudo yum install <package.rpm> 查看rpm软件包是否已安装的命令如下: yum list <package.rpm> 查看rpm软件包详细信息的命令如下: yum info <package.rpm> 移除rpm软件包的命令如下: sudo yum remove <package.rpm>RPM安装后的位置:
/usr/src/neuware-mlu270-driver-4.2.0/升级:
deb驱动安装包升级 deb包适用于Ubuntu 16.04.1(4.4.0-112)、Ubuntu 18.04(4.15.0-32)、Debian 10.1(4.19.0-6)、Debian9.8(4.14.138),需要先安装dpkg和apt工具。建议优先使用apt方式升级,该种方式更安全。 apt方式升级驱动 升级新版本驱动的命令如下所示: sudo apt install ./<package.deb> 查看驱动是否已经升级完成的命令如下所示: apt show <package.deb> 查看驱动版本号的命令如下所示: cnmon 升级完成后需要重启才生效,重启命令如下所示: sudo reboot dpkg方式升级 升级新版本驱动的命令如下所示: sudo dpkg -i <package.deb> 查看驱动是否已经升级完成的命令如下所示: dpkg -s <package.deb> 查看驱动版本号的命令如下所示: cnmon 升级完成后需要重启才生效,重启命令如下所示: sudo reboot rpm驱动安装包升级 rpm包适用于CentOS 7.4(3.10.0-862)、CentOS 7.5(3.10.0-862)、CentOS 7.6(3.10.0-957),需要先安装rpm和yum工具。建议优先使用yum方式升级,该种方式更安全。 yum方式升级 升级新版本驱动的命令如下所示: sudo yum install <package.rpm> 查看驱动是否已经升级完成的命令如下所示: yum info <package.rpm> 查看驱动版本号的命令如下所示: cnmon 升级完成后需要重启才生效,重启命令如下所示: sudo reboot rpm方式升级 升级新版本驱动的命令如下所示: sudo rpm -Uvh <package.rpm> 查看驱动是否已经升级完成的命令如下所示: rpm -qi <package.rpm> 查看驱动版本号的命令如下所示: cnmon 升级完成后需要重启才生效,重启命令如下所示: sudo reboot
-
https://www.cambricon.com/docs/cnmon/cnmon_overview/cnmon_overview.html
CNMon(Cambricon Neuware Monitor,寒武纪硬件监测器工具)是一款寒武纪硬件检测工具,通过调用CNDev接口获取底层硬件信息。CNMon不仅可以采集底层硬件信息,还可以实时获取上层软件对硬件资源的开销,为用户实时显示当前底层硬件的详细信息和状态。CNMon可以采集的硬件信息如下:
硬件设备型号;
固件版本号;
驱动版本号;
设备利用率:多核设备的利用率;
内存开销状态:物理内存总量、虚拟内存总量(已使用量和未使用量)以及每个进程内存使用量;
板卡功耗和板卡峰值功耗;
设备初始化:挂载的设备是否已经成功初始化;
不可修正的DDR ECC错误次数;
已修正的DDR ECC 错误次数;
LLC(Last Level Cache,最后一级缓存)命中率:设备cache命中率;
板卡风扇转速比;
设备温度和板卡温度;
板卡上设备实时频率;
PCIe信息:板卡支持PCIe最大speed和最大lanes;
PCIe设备ID:Vendor ID、Device ID、Sub-Vendor ID、Sub-System ID、Bus_num、Device、Function、Domain ID;
Codec信息:获取板卡上image codec和video codec芯片数量及其算力;
获取板卡序列号;
支持虚拟化设备显示;
IDLE/BUSY:idle、busy核数;
板卡带宽;
获取MLU设备拓扑逻辑关系图表;
设置MLU频率、带宽、模式;
设置刷新频率;
获取板卡PCIe通信的实时信息;
支持visible_devices判断功能;
设置MLU local memory值功能;
获取板卡当前的local memory值功能;
获取板卡fast alloc内存信息功能;
获取每个channel内存使用信息;
获取Codec Turbo信息;
获取Scaler数量和利用率信息;
设备UUID信息;
获取Device CPU利用率信息;
获取Page Retirement信息;
获取Row-remapping信息;

-
CNToolkit
sudo rpm --install cntoolkit-1.7.1-1.el7.x86_64.rpm$ tree /usr/local/neuware/ -L 2 /usr/local/neuware/ ├── bin │ └── cncc ├── cmake │ └── modules ├── lib │ └── clang └── samples └── BANGRHEL 7/CentOS 7
执行 安装前准备 。安装第三方EPEL源,方便后续解决包的依赖安装问题。例如 cmake3 等软件包只在EPEL源中存在。
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
使用RPM包安装本地源。$ sudo rpm --install cntoolkit-<version>-<build>.<distro>.<architecture>.rpm
清理本地源缓存。$ sudo yum clean expire-cache
安装CNToolkit中全部组件。$ sudo yum install cnas cncc cncodec cndev cndrv cnlicense cnpapi cnperf cnrt cnrtc cnstudio
执行 安装后配置 。Ubuntu 16.04/Ubuntu 18.04
执行 安装前准备 。使用Deb包安装本地源。
$ sudo dpkg -i cntoolkit_<version>-<build>.<distro>_<architecture>.deb
更新本地源缓存。$ sudo apt update
安装CNToolkit中全部组件。$ sudo apt-get install cnas cncc cncodec cndev cndrv cnlicense cnpapi cnperf cnrt cnrtc cnstudio
执行 安装后配置 。安装后配置:
export NEUWARE_HOME="/usr/local/neuware" export PATH="${NEUWARE_HOME}/bin:${PATH}" export LD_LIBRARY_PATH="${NEUWARE_HOME}/lib64:${LD_LIBRARY_PATH}" -
BANG 代码编译
–bang-mlu-arch=MLU270