希姆计算STCP920快速安装指南

版本历史

版本 作者 日期 说明
V1.4.0 希姆计算 2022-04-29 - Model Zoo不绑定TensorTurbo,移除Model Zoo内容。
- 更新软件版本。
V1.3.1 希姆计算 2022-04-18 更新硬件规格描述、图片。
V1.3.0 希姆计算 2022-03-31 - 更新软件版本描述。
- 本篇仅涉及安装,改名为希姆计算STCP920快速安装指南
V1.2.0 希姆计算 2022-02-28 优化整篇架构,版本号对齐TensorTurbo的发版。
V1.0.5 希姆计算 2022-01-05 更新安装TensorTurbo章节中attrs版本需求。
V1.0.4 希姆计算 2021-12-27 将配置环境变量步骤从安装HPE章节调整到安装TensorTurbo章节,并增加pip最低版本的要求。
V1.0.3 希姆计算 2021-12-09 更新安装HPE章节中的配置环境变量步骤。
V1.0.2 希姆计算 2021-11-15 更新安装TensorTurbo章节中的Model Zoo用例。
V1.0.1 希姆计算 2021-11-10 修订安装TensorTurbo章节中对Python版本的要求。
V1.0.0 希姆计算 2021-10-01 初始版本。

概述

STCP920是希姆计算推出的一款AI推理卡,搭配一颗STCP920处理器,用于集成到各类服务器中快速扩展您在云端的推理能力,让您在图像视频分析、人脸识别、自然语言处理等场景中获得更好的推理性能。

STCP920的外观图如下:

../_images/product-outlook.png

硬件规格

STCP920详细的硬件规格如下:

  • 单宽、3/4长、全高(268.44mm × 111.15mm)。

  • 整板功耗160W。

  • 采用被动散热,需要系统风扇提供冷却风量。

  • 支持标准PCIe 4.0 × 16接口。

  • 提供一个PCIe 8-Pin的电源接口。该电源接口的管脚排序及定义如下:

../_images/8pin-def.png

安装硬件

安全须知

为确保人身安全和设备安全,请务必:

  • 保持服务器以及周围工作区域清洁无尘土。

  • 在打开服务器外壳前拔下电源线。

除保持环境清洁及操作前断电外,还需要注意静电放电ESD(Electro-Static Discharge)。在安装STCP920时操作不当可能因ESD损坏电子组件,并导致设备整体故障或间歇故障。进行拆卸和更换组件操作时,请始终遵循防ESD流程,包括但不限于:

  • 确保佩戴ESD腕带或踝带,且与皮肤接触良好。将腕带或踝带的设备端连接到底座上未涂漆的金属表面。

  • 避免让STCP920接触您的衣物。腕带或踝带只能防止身体产生的ESD影响电子组件,但无法防止衣物产生的ESD。

  • 拿起STCP920时只能接触其托架或边缘,避免接触印刷电路板或连接器。

  • 将STCP920放在防静电的表面上,例如套件中提供的防静电袋。

  • 如需退还STCP920,请立即将其放入防静电袋内。

准备工作

在开始安装STCP920前,请了解其硬件规格并完成准以下准备工作:

  • 预留安装的最小可用空间,即至少单宽、3/4长、全高(268.44mm × 111.15mm)的空间。

  • 确保服务器支持PCIe 4.0 × 16接口。

  • 确保PCIe接口的输入电压和输入电流满足要求。要求如下:

PCIe接口 最小电压 正常电压 最大电压 峰值电流需求
PCIe Edge Connecter(12V) 11.04V 12V 12.96V 0.5A
PCIe 8-Pin Connecter(12V) 11.04V 12V 12.96V 13A
PCIe Edge Connecter(3.3V) 3.0V 3.3V 3.6V 0.3A
  • 确保服务器满足冷却风量要求。由于STCP920采用被动散热,为保证工作在安全温度范围,风量要求如下:

    • 吹风方向

      ../_images/vent-blow.png

    • 吸风方向

      ../_images/vent-suck.png

说明:更详细的散热规格说明,请参见STCP920 AI**推理卡产品手册

安装STCP920

  1. 关闭服务器并拔下电源线。

  2. 打开服务器外壳,在主板上找到待安装STCP920的PCIe 4.0 × 16插槽。

    说明:必要时移除该PCIe 4.0 × 16插槽相邻的PCIe插槽盖。

  3. 将STCP920插入PCIe 4.0 × 16插槽,并连接PCIe 8-Pin的电源接口和主板,使用服务器内的PCIe 8-Pin电源插头连接到STCP920的外接电源插座即可。

  4. 为服务器装上外壳。

  5. 为服务器连接电源线并启动服务器。

    警告:STCP920采用被动散热,在启动服务器前请再次确认STCP920上有足够的冷却风量通过。如果不能确保冷却风量要求,上电后可能导致STCP920损坏。在使用过程中STCP920可能发热,请及时关注并谨慎处理过热的情况。

  6. 验证是否已成功安装STCP920。

    执行以下命令检查STCP920的安装状态:

     $ sudo lspci -vd 23e2: 
    

    回显设备信息则说明已成功安装STCP920,且操作系统已发现设备。示例输出如下:

    01:00.0 Non-VGA unclassified device: Device 23e2:0100
            Subsystem: Device 23e2:0000
            Flags: fast devsel, IRQ 255
            Memory at d0000000 (64-bit, non-prefetchable) [disabled] [size=128M]
            Memory at d8000000 (64-bit, non-prefetchable) [disabled] [size=32M]
            Memory at da000000 (64-bit, non-prefetchable) [disabled] [size=1M]
            Capabilities: <access denied>
    

    如果该服务器在安装硬件前就已经安装过HPE驱动,则回显的设备信息略有区别。示例输出如下:

    01:00.0 Non-VGA unclassified device: Device 23e2:0100
            Subsystem: Device 23e2:0000
            Flags: bus master, fast devsel, latency 0, IRQ 136
            Memory at d0000000 (64-bit, non-prefetchable) [size=128M]
            Memory at d8000000 (64-bit, non-prefetchable) [size=32M]
            Memory at da000000 (64-bit, non-prefetchable) [size=1M]
            Capabilities: <access denied>
            Kernel driver in use: stream-computing
    

安装软件

硬件安装完成后,您需要在服务器上安装配套软件,以便使用STCP920加速推理。配套软件包括驱动软件HPE、AI编译器TensorTurbo等,仅支持在Linux环境中使用配套软件,其中HPE对操作系统的要求如下:

  • Debian 10、Debian 9

  • Ubuntu 20.04、Ubuntu 18.04

说明:建议的Linux内核版本、glibc版本,请参见希姆计算HPE安装指南

软件版本

希姆计算不断优化HPE和TensorTurbo,致力于让您在希姆硬件获得更好的推理性能。TensorTurbo版本对HPE版本的依赖关系如下所示:

TensorTurbo版本 HPE版本
V1.4.0 V1.2.2

说明:请联系希姆计算的销售人员获取配套软件的安装包。

安装HPE

  1. 确认系统已安装内核版本对应的kernel headers。

    安装HPE时要求系统内核版本和kernel headers相匹配,例如,系统内核版本为5.4.0-77,则需要安装5.4.0-77的kernel headers。在Debian、Ubuntu系统中,您可以执行以下命令安装kernel headers:

    $ sudo apt-get install linux-headers-$(uname -r)
    
  2. 将HPE安装包复制到服务器。

    HPE安装包分为完整功能版和mini版,完整功能版支持使用TensorTurbo对模型进行编译并在NPU上运行,mini版则仅支持拿已有TensorTurbo的编译结果在NPU上运行。命名格式示例如下:

    • 完整功能版:hpe-repo-{OS}-{HPE version}-local_{detailed HPE version}_amd64.deb

    • mini版:mini-hpe-repo-{OS}-{HPE version}-local_{detailed HPE version}_amd64.deb

  3. 在HPE安装包所在目录执行安装命令。

    以在Ubuntu18.04中安装完整功能版的HPE V1.1.0为例:

    $ sudo dpkg -i hpe-repo-ubuntu1804-1-1-local_1.1.0_amd64.deb
    $ sudo apt-key add /var/hpe-repo-ubuntu1804-1-1-local/hpe.pub
    $ sudo apt update
    $ sudo apt install hpe -y
    
  4. 验证是否已成功安装HPE。

    • 查看stc模块。示例回显信息如下:

      $ lsmod | grep stc
      stc                   352256  0
      
    • 查看hpe目录及安装的文件。示例回显信息如下:

      $ ls /usr/local/hpe/ 
      bin example include lib libexec modules riscv32npu share version.txt
      

      说明:回显stc模块的信息且hpe目录下出现安装的文件,则表示已成功安装HPE,但具体内容可能随HPE版本不同而变化。

  5. 试用HPE。

    进入HPE的用例目录并运行hello_world用例。如果HPE已正常运行,则硬件返回响应信息。示例输出如下:

    说明:mini版跳过make步骤。

    $ cd /usr/local/hpe/example
    $ make
    $ ./hello_world
    hello world from core 0/8.
    hello world from core 1/8.
    hello world from core 2/8.
    hello world from core 3/8.
    hello world from core 4/8.
    hello world from core 5/8.
    hello world from core 6/8.
    hello world from core 7/8.
    

安装TensorTurbo

前提条件

  • 服务器已安装HPE,且HPE版本满足TensorTurbo版本的要求。

  • 服务器已安装Python 3.6或Python 3.7。

    说明:TensorTurbo仅支持使用Python 3.6或Python 3.7作为编译和使用环境。如果Python版本未满足要求,请使用Anaconda等方式切换版本,或者重新安装Python。

  • 服务器已安装pip v10.0.1或以上版本,推荐使用pip v21.3.1或以上版本。

操作步骤

  1. 将TensorTurbo安装包复制到服务器。

    TensorTurbo安装包的命名格式示例:tb-{OS}-{TensorTurbo version}-cp{Python version}-{abi}-linux_x86_64.whl

  2. 在TensorTurbo安装包所在目录执行安装命令。

    $ pip3 install tb-{OS}-{TensorTurbo version}-cp{Python version}-{abi}-linux_x86_64.whl
    

    如果安装时出现如下错误,请检查whl包和Python版本是否匹配。

    ERROR: tb-{OS}-{TensorTurbo version}-cp{Python version}-{abi}-linux_x86_64.whl is not a supported wheel on this platform.
    

    如果whl包和Python版本不匹配,您可以进入当前的Python环境查看支持的whl包命名类型。示例命令如下:

     >>> import pip._internal
     >>> print(pip._internal.pep425tags.get_supported())
    

    例如,在Python3.7环境中的输出信息示例如下:

     [('cp37', 'cp37m', 'manylinux1_x86_64'), ('cp37', 'cp37m', 'linux_x86_64'), ('cp37', 'abi3', 'manylinux1_x86_64'), ('cp37', 'abi3', 'linux_x86_64'), ('cp37', 'none', 'manylinux1_x86_64'), ('cp37', 'none', 'linux_x86_64'), ('cp36', 'abi3', 'manylinux1_x86_64‘)]
    

    根据输出信息修改whl包名称中的cp{Python version}-{abi}部分,确保和输出信息对应,然后重新尝试安装。

  3. 配置环境变量。

    $ export RISCV=/usr/local/hpe
    $ export PATH=$RISCV/bin:$PATH
    
  4. 验证是否已成功安装TensorTurbo。

    $ pip3 list|grep tb 
    tb            {TensorTurbo version}
    

    说明:回显TensorTurbo的版本号,则表示已成功安装TensorTurbo。

  5. 试用TensorTurbo。

    a. 安装依赖相关依赖。

    • 如果Python版本为Pyhton 3.6:

      $ pip3 install tensorflow==1.14.0
      $ pip3 install minio attrs==21.2.0 attr graphviz mysqlclient pytest Keras==2.3.1 Keras-Applications==1.0.8 Keras-Preprocessing==1.1.2 h5py==2.10.0 pandas==1.1.5 torch==1.8.1 tqdm sklearn tensorboard==1.14 onnx==1.6.0 scikit-image synr multipledispatch
      
    • 如果Python版本为Pyhton 3.7:

      $ pip3 install tensorflow==1.14.0
      $ pip3 install minio attrs==21.2.0 attr graphviz mysqlclient pytest Keras==2.3.1 Keras-Applications==1.0.8 Keras-Preprocessing==1.1.2 h5py==2.10.0 pandas==1.3.3 torch==1.8.1 tqdm sklearn tensorboard==1.14 onnx==1.6.0 scikit-image synr multipledispatch
      

    b. 编译神经网络模型。

    • 示例1:基于TensorTurbo编译ResNet50网络。

      $ python3 -m pytest test_resnet50.py
      
    • 示例2:基于TensorTurbo编译ResNet101网络。

      $ python3 -m pytest test_resnet101.py
      

卸载软件

在更新安装等情况下,您可能需要卸载软件并重新安装。卸载操作本身没有强制顺序要求,先卸载任一软件均可操作成功,但推荐您按照以下顺序操作:

  1. 卸载TensorTurbo。

    $ pip3 uninstall tb -y
    
  2. 卸载HPE。

    $ sudo apt-get --purge remove "stc-*" "hpe-*" "hpe" -y
    

    您也可以清理不再需要的依赖软件,示例命令如下:

      $ sudo apt-get autoremove