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

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.

时间: 2024-08-03 00:18:57

FPGA资源平民化 - 阿里云FaaS F1 OpenCL使用指南的相关文章

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

[TOC] 1. 配置基础环境 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 行

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

前言 阿里云虚拟化团队异构计算和高性能计算团队一直致力于将计算资源"平民化":平民化这个词我第一次是从高性能计算团队何万青老师那边听到的,他们在做的E-HPC就是要让所有云上用户都能够瞬间拥有一个小型的超算集群,使得使用超算不再仅仅是一些超算中心和高校的特权:我们异构计算团队则致力于将目前最快,最新的计算设备在云上提供给用户,之前的产品为GPU云服务器EGS:大概半年前我们正式推出了FPGA云服务器FaaS:经过内测,公测,现在终于正式上线,用户只需要开通白名单就可以和使用ECS虚拟机

认识阿里云FPGA云服务器F1

阿里云F1环境 硬件 阿里云 FaaS F1 使用基于20nm工艺的Intel Arria 10 1150 FPGA,提供了良好的高速及并行性能支撑:DDR为64-bit SODIMM,运行频率2133MHz,两套内存能提供34GB/s的数据缓存带宽:和Host通信为8-Lane PCIe GEN3:同时提供丰富的内部可配时钟资源供开发使用.   硬件规格: 规格 描述 尺寸规格 169.5mm x 68.9mm, 标准半高半长,占单个槽位 FPGA型号 A10 1150 PCIe接口 PCIe

全国第一家FPGA云主机(FAAS)正式启动售卖,被阿里云抢先了。

阿里云FPGA云主机(FAAS)正式启动售卖 应用领域:人工智能应用.大数据处理.图形图像.基因计算.工业物联网等. 阿里云FPGA云主机正式面向市场售卖,欢迎关注:https://www.aliyun.com/product/ecs/fpga,购买体验. 阿里云FAAS简介:        基于阿里云弹性计算框架,用户可以几分钟内轻松创建FPGA实例,创建自定义的专用硬件加速器.由于FPGA硬件的可重配特性,用户可以对已创建的FPGA硬件加速应用,进行快速擦写和重配,达到低时延硬件与弹性伸缩最

专访阿里云异构计算负责人:异构计算,GPU、FPGA、ASIC芯片将三分天下

在IT界,异构计算并不是一个新兴的词. 近十年来,计算行业经历了从32bit."x86-64".多核心.通用GPGPU以及2010年"CPU-GPU"异构计算的变迁.而最近几年,随着人工智能.高性能数据分析和金融分析等计算密集型领域的兴起,异构计算才突然火了起来. 因为传统通用计算的方式已经无法满足我们对计算能力的需求,异构计算被认为是现阶段挑起计算大梁的关键技术,阿里云异构计算产品解决方案就在这样的大环境下诞生了,这支团队的掌舵人正是张献涛. 张献涛,花名旭卿,武

告别繁荣缛节,阿里云资源编排支持API网关

阿里云ROS的API 网关资源11月初正式上线,资源编排(ROS) 支持在模板中定义API 网关资源,助力用户快速.便捷管理发布自己的API.目前,阿里云ROS 产品免费提供给广大用户. 资源编排服务 (Resource Orchestration Service 简称 ROS) 是一款帮助阿里云用户简化云计算资源管理和自动化运维的服务.用户遵循 ROS 定义的模板规范,编写模板文件,在模板中定义所需云计算资源的集合及资源间的依赖关系.资源配置细节等,ROS 通过编排引擎自动完成所有资源的创建和

【阿里云资讯】阿里云入驻中信云平台 输出技术支持与云资源

[8月30日讯] 8月29日,中信集团在京发布"互联网+转型"战略,宣布将大力建设提供平台服务和数据服务的中信产业云网.              阿里云成为中信产业云网的首批入驻服务提供商之一,为中信集团互联网+转型提供技术动力. 中信产业云网+阿里云 中信产业云网通过平台服务赋能,将从中信集团内向集团外把线下实体企业互连互通,加快实体企业资源和能力的在线化和数字化,助推更多新业态的涌现.阿里云作为中信产业云网的合作伙伴,将公共云具备的弹性伸缩.海量扩展的优势延伸至中信基础设施云平台

【集锦】2016年阿里云在线直播精华合集

每期阿里云的技术分享课程都报名火爆,各路技术大咖进行了对于技术理解的深度分享,但是还是有很多小伙伴错过了现场直播.本文特意为大家整理了阿里云在线技术分享课程的精彩合集,错过了直播的小伙伴们快来补补课吧! 12月28日 阿里沈询:分布式事务原理与实践 分布式数据库之中,一个最重要待解决的问题就是分布式事务应该怎么支持.往往一提到分布式事务,就立刻会联想到性能低,速度慢,然而真的是这样么?有没有一些方式和方法,能够比较好的解决这个问题呢?阿里针对这个场景又是怎么去实践的呢?阿里中间件资深技术专家沈询

用Windows IIS和阿里云NAS提供Web和FTP服务

阿里云文件存储服务NAS(阿里云NAS)是阿里云在2016年正式推出的公有云上的网络文件系统实现.阿里云NAS主要面向阿里云 ECS 实例.HPC.Docker.弹性Web和BatchCompute 等计算节点提供文件存储服务.通过标准的文件访问协议,用户无需对现有应用做任何修改,即可在云上使用具备无限容量及性能扩展.单一命名空间.多共享.高可靠和高可用等特性的分布式文件系统.阿里云于2016年发布了支持NFS网络文件系统访问协议的阿里云文件系统(NAS).2017年3月,又增加了SMB文件系统