使用 SSH 登陆到服务器;安装基础环境
- yum install -y python-devel screen
- pip install aliyun-python-sdk-ram
- pip install aliyun-python-sdk-faas
- pip install oss2
随后,使用 vim 编辑
- /usr/lib/python2.7/site3packages/aliyunsdkcore/endpoints.xml
在第 648 行下添加一行代码
- <Product><ProductName>faas</ProductName><DomainName>faas.cn3hangzhou.aliyuncs.com</DomainName></Product>
接下来,安装 faascmd 脚本
- vi / usr / local / bin / faascmd
将代码粘贴进入后,保存退出,执行如下代码
- chmod a + x / usr / local / bin / faascmd
放在 /usr/local/bin 下可以直接执行 faascmd 命令,而无需加入前方的路径
- screen -S aliyunfaas
- cd /opt/dcp1_0/script
- sh install_sdk.sh
- sh ini_driver.sh
- source intel_fpga_env.sh
- source intel_quartus_env.sh
- mkdir -p /opt/tmp
- cd /opt/tmp
此时,你应该在
目录下
- /opt/tmp
然后执行命令下载 Example 文件,并解压
- wget https: //www.altera.com/content/dam/altera-www/global/en_US/others/support/examples/download/exm_opencl_matrix_mult_x64_linux.tgz
- tar - zxvf exm_opencl_matrix_mult_x64_linux.tgz
可以看到,解压后的目录如下
进入
目录下,执行编译命令
- matrix_mult
- cd matrix_mult
- aoc -v -g --report ./device/matrix_mult.cl
编译过程可能会持续数个小时,你可以再开一个console窗口,使用top监控系统占用,确定编译状态。
首先,需要初始化faascmd
- # 将 hereIsMySecretId 换为你的OSS SecretID,hereIsMySecretKey 换为你的 OSS 的SecretKey
- faascmd config --id=hereIsMySecretId --key=hereIsMySecretKey
- # 将hereIsMyBucket换为华东1区的OSS的 Bucket 名
- faascmd auth --bucket=hereIsMyBucket
其次,上传配置文件,进入
- matrix_mult/output_files
- cd matrix_mult/output_files # 此时你应该在/opt/tmp/matrix_mult/matrix_mult/output_files
- faascmd uplad_object --object=afu_fit.gbs --file=afu_fit.gbs
接下来,使用 gbs 制作 FPGA image
- # 将hereIsFPGAImageName换为你自己的镜象名,将 hereIsFPGAImageTag 换为你自己的镜像的标签
- faascmd create_image --object=afu_fit.gbs --fpgatype=intel --name=hereIsFPGAImageName --tags=hereIsFPGAImageTag --encrypted=false --shell =V1.0
查看镜像是否制作成功
当 State 为 success 时,说明创建成功。记下这里的 FpgaImageUUID,稍后会用到
首先,我们要获取 FPGA ID
- # 将 hereIsYourInstanceId 替换为你的 FPGA 云服务器的实例 ID
- faascmd list_instances --instanceId=hereIsYourInstanceId
这里记下 FpgaUUID
实例ID 可以在 FPGA 云服务器详情页获取
下载镜像到本地
- # 将 hereIsYourInstanceID 替换为刚刚保存的实例ID;将 hereIsFpgaUUID 替换为上一条命令中记下的 FpgaUUID;将 hereIsImageUUID 替换为上一步记下的 FpgaImageUUID
- faascmd download_image --instanceId=hereIsYourInstanceID --fpgauuid=hereIsFpgaUUID --fpgatype=intel --imageuuid=hereIsImageUUID --imagetype=afu --shell=V1.0
下载后,可以执行如下命令来检查是否下载成功
- # 将 hereIsYourInstanceID 替换为刚刚保存的实例ID;将 hereIsFpgaUUID 替换为上一条命令中记下的 FpgaUUID;
- faascmd fpga_status --fpgauuid=hereIsFpgaUUID --instanceId=hereIsYourInstanceID
当 TaskStatus 为 valid 时,说明下载成功
此处需要第三步的环境,如果刚刚的窗口已经关闭,需要重新去执行第三步的环境变量操作
配置 OpenCL 的运行环境
- sh / opt / dcp1_0 / opencl / dcp_opencl_bsp / linux64 / libexec / setup_permissions.sh
返回 上上级目录
- cd.. / ..#此时你应该在 / opt / tmp / matrix_mult
执行编译命令
- make
- # 输出环境配置
- export CL_CONTEXT_COMPILER_MODE_ALTERA=3
- cp matrix_mult.aocx ./bin/matrix_mult.aocx
- cd bin
- host matrix_mult.aocx
当你看到如下输出时,则说明配置完成
- [root@iZbp15n6gzuzccly816f9rZ bin]# ./host matrix_mult.aocx
- Matrix sizes:
- A: 2048 x 1024
- B: 1024 x 1024
- C: 2048 x 1024
- Initializing OpenCL
- Platform: Intel(R) FPGA SDK for OpenCL(TM)
- Using 1 device(s)
- skx_fpga_dcp_ddr : SKX DCP FPGA OpenCL BSP (acl0)
- Using AOCX: matrix_mult.aocx
- Generating input matrices
- Launching for device 0 (global size: 1024, 2048)
- Time: 40.415 ms
- Kernel time (device 0): 40.355 ms
- Throughput: 106.27 GFLOPS
- Computing reference output
- Verifying
- Verification: PASS
关键在于最后的
.
- Verification: PASS
来源: https://yq.aliyun.com/articles/228105