FPGA资源平民化 - 阿里云FaaS F1 OpenCL使用指南

本文涉及的产品
简介: TODO

FPGA Server 配置 Example 环境说明

1. 安装基础环境

使用 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 命令,而无需加入前方的路径

2. 安装 DCP 的 SDK 和驱动

screen -S aliyunfaas
cd /opt/dcp1_0/script
sh install_sdk.sh

3. 配置环境变量

sh ini_driver.sh 
source intel_fpga_env.sh
source intel_quartus_env.sh

4. 下载官方的 OpenCL Example

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监控系统占用,确定编译状态。

5. 上传

首先,需要初始化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,稍后会用到

6. 下载

首先,我们要获取 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 时,说明下载成功

7. 烧录

此处需要第三步的环境,如果刚刚的窗口已经关闭,需要重新去执行第三步的环境变量操作

配置 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.

相关文章
|
1月前
|
安全 API 持续交付
要利用阿里云控制API查询您的阿里云资源
【2月更文挑战第33天】要利用阿里云控制API查询您的阿里云资源
19 3
|
2月前
|
弹性计算 API Python
如何利用通义千问查询阿里云资源
本篇文章详细阐述了如何利用LangChain框架构建一款Python工具,该工具能够调用通义千问大模型来查询和获取阿里云资源信息。
115576 48
|
16天前
|
人工智能 自然语言处理 测试技术
“送云资源、用大模型” 阿里云启动云工开物“高校训练营”计划
“送云资源、用大模型” 阿里云启动云工开物“高校训练营”计划
30 1
|
22天前
|
消息中间件 Kubernetes Kafka
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
Terraform阿里云创建资源1分钟创建集群一键发布应用Terraform 创建 Kubernetes 集群
16 0
|
29天前
|
存储 弹性计算 Serverless
什么是阿里云FPGA云服务器?FPGA云服务器产品优势及应用场景介绍
FPGA云服务器是阿里云提供的实例规格,融合现场可编程门阵列的低延迟硬件加速与弹性资源。FaaS平台简化了FPGA开发,提供统一硬件、开发环境和丰富的IP生态。特性包括硬件虚拟化、联合仿真和动态互联配置。产品计费与ECS一致,支持多种计费模式。优势在于分钟级交付、高性能加速、经济性价比和设计复用。应用广泛,如视频转码、人工智能、基因测序等。FPGA云服务器通过FPGA镜像、OSS服务等工具进行管理。
什么是阿里云FPGA云服务器?FPGA云服务器产品优势及应用场景介绍
|
1月前
|
存储 机器学习/深度学习 并行计算
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下不同类型的云服务器有何不同,主要特点及适用场景有哪些。
阿里云服务器X86计算、Arm计算、GPU/FPGA/ASIC、高性能计算架构区别
|
2月前
|
弹性计算 安全 API
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(1)
573 2
|
2月前
|
弹性计算 运维 监控
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(2)
带你读《从基础到应用云上安全航行指南》——干货长文快收藏!阿里云专家教你如何安全访问和管理ECS资源(2)
561 0
|
29天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考