全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 更多
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 智能硬件
云服务器 ECS

使用 f1 RTL

更新时间:2018-01-26 11:13:51

本文描述如何使用f1 RTL(Register Transfer Level)。

注意
强烈建议您使用RAM用户操作FPGA实例。为了防止意外操作,您需要让RAM用户仅执行必要的操作。在操作及下载FPGA镜像时,因为您需要从指定的OSS空间下载原始DCP工程,所以您需要为FaaS账号创建一个角色,并授予临时权限,让FaaS账号可以访问指定的OSS空间。如果需要对IP加密,需要授予RAM用户一些KMS相关的权限。如果需要做权限检查,还需要授予查看用户资源的权限。

前提条件

您已经 创建了f1实例

使用RAM用户操作FPGA,需要 创建RAM用户授权创建RAM角色授权。您必须 获取AccessKeyID和AccessKeySecret

登录 ECS管理控制台,在f1实例的详情页上,获取实例ID。

操作步骤

按以下步骤使用f1 RTL。

第 1 步. 远程连接f1实例

远程连接Linux实例

第 2 步. 配置基础环境

运行以下脚本配置基础环境。

  1. source /opt/dcp1_0/script/f1_env_set.sh

第 3 步. 编译工程

运行以下命令:

  1. cd /opt/dcp1_0/hw/green_bits/dma_afu/src
  2. run.sh

说明
编译时间很长。

第 4 步. 制作镜像

按以下步骤制作镜像:

  1. 运行命令初始化faascmd。

    1. #如果需要,添加环境变量及运行权限
    2. export PATH=$PATH:/opt/dcp1_0/script/
    3. chmod +x /opt/dcp1_0/script/faascmd
    4. # 将hereIsMySecretId替换为您的AccessKey ID,hereIsMySecretKey替换为您的AccessKey Secret
    5. faascmd config --id=hereIsMySecretId --key=hereIsMySecretKey
    6. # 将hereIsMyBucket换为华东1区的OSS的Bucket名
    7. faascmd auth --bucket=hereIsMyBucket
  2. 确认在/opt/dcp1_0/hw/green_bits/dma_afu/src目录下,运行以下命令上传gbs文件。

    1. faascmd upload_object --object=dma_afu.gbs --file=dma_afu.gbs
  3. 运行以下命令制作镜像。

    1. # 将hereIsYourImageName替换为您的镜像名
    2. faascmd create_image --object=dma_afu.gbs --fpgatype=intel --name=hereIsYourImageName --tags=hereIsYourImageTag --encrypted=false --shell=V0.11

第 5 步. 下载镜像

按以下步骤下载镜像到f1实例:

  1. 查看镜像是否制作成功:运行命令 faascmd list_images
    返回结果里,如果出现"State":"success",表示镜像制作成功。请记录返回结果里显示的FpgaImageUUID,稍后会用到。
    查看镜像是否制作成功

  2. 运行命令获取FPGA ID。

    1. # 将hereIsYourInstanceId替换为您的f1实例ID
    2. faascmd list_instances --instanceId=hereIsYourInstanceId

    以下为返回结果。请记录FpgaUUID。
    获取FpgaUUID

  3. 运行命令下载FPGA镜像到f1实例。

    1. # 将hereIsYourInstanceID替换为刚刚保存的实例ID;将hereIsFpgaUUID替换为上一条命令中记下的FpgaUUID;将hereIsImageUUID替换为上一步记下的FpgaImageUUID
    2. faascmd download_image --instanceId=hereIsYourInstanceID --fpgauuid=hereIsFpgaUUID --fpgatype=intel --imageuuid=hereIsImageUUID --imagetype=afu --shell=V0.11
  4. 运行命令检查是否下载成功。

    1. # 将hereIsYourInstanceID替换为刚刚保存的实例ID;将hereIsFpgaUUID替换为上一条命令中记下的FpgaUUID;
    2. faascmd fpga_status --instanceId=hereIsYourInstanceID --fpgauuid=hereIsFpgaUUID

    如果返回结果里出现"TaskStatus":"operating"时,且FpgaImageUUID和下载镜像时的FpgaImageUUID一致,说明下载成功。
    查看是否下载成功

第 6 步. 测试

依次运行以下命令。

  1. cd /opt/dcp1_0/hw/green_bits/dma_afu/src/sw
  2. make
  3. ./fpga_dma_test use_ase=0

如果您看到如图所示的输出结果,说明测试完成。
测试输出结果

注意
如果没有开启Huge pages,运行以下命令启用Huge pages。

  1. sudo bash -c "echo 20 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages"
本文导读目录