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

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 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.

相关文章
|
2月前
|
人工智能 Java Serverless
阿里云函数计算助力AI大模型快速部署
随着人工智能技术的快速发展,AI大模型已经成为企业数字化转型的重要工具。然而,对于许多业务人员、开发者以及企业来说,探索和利用AI大模型仍然面临诸多挑战。业务人员可能缺乏编程技能,难以快速上手AI模型;开发者可能受限于GPU资源,无法高效构建和部署AI应用;企业则希望简化技术门槛,以更低的成本和更高的效率利用AI大模型。
269 12
|
1天前
|
Kubernetes 监控 Serverless
基于阿里云Serverless Kubernetes(ASK)的无服务器架构设计与实践
无服务器架构(Serverless Architecture)在云原生技术中备受关注,开发者只需专注于业务逻辑,无需管理服务器。阿里云Serverless Kubernetes(ASK)是基于Kubernetes的托管服务,提供极致弹性和按需付费能力。本文深入探讨如何使用ASK设计和实现无服务器架构,涵盖事件驱动、自动扩展、无状态设计、监控与日志及成本优化等方面,并通过图片处理服务案例展示具体实践,帮助构建高效可靠的无服务器应用。
|
11天前
|
机器学习/深度学习 人工智能 自然语言处理
企业级API集成方案:基于阿里云函数计算调用DeepSeek全解析
DeepSeek R1 是一款先进的大规模深度学习模型,专为自然语言处理等复杂任务设计。它具备高效的架构、强大的泛化能力和优化的参数管理,适用于文本生成、智能问答、代码生成和数据分析等领域。阿里云平台提供了高性能计算资源、合规与数据安全、低延迟覆盖和成本效益等优势,支持用户便捷部署和调用 DeepSeek R1 模型,确保快速响应和稳定服务。通过阿里云百炼模型服务,用户可以轻松体验满血版 DeepSeek R1,并享受免费试用和灵活的API调用方式。
118 12
|
17天前
|
机器学习/深度学习 分布式计算 大数据
阿里云 EMR Serverless Spark 在微财机器学习场景下的应用
面对机器学习场景下的训练瓶颈,微财选择基于阿里云 EMR Serverless Spark 建立数据平台。通过 EMR Serverless Spark,微财突破了单机训练使用的数据规模瓶颈,大幅提升了训练效率,解决了存算分离架构下 Shuffle 稳定性和性能困扰,为智能风控等业务提供了强有力的技术支撑。
137 15
|
8天前
|
存储 分布式计算 物联网
美的楼宇科技基于阿里云 EMR Serverless Spark 构建 LakeHouse 湖仓数据平台
美的楼宇科技基于阿里云 EMR Serverless Spark 建设 IoT 数据平台,实现了数据与 AI 技术的有效融合,解决了美的楼宇科技设备数据量庞大且持续增长、数据半结构化、数据价值缺乏深度挖掘的痛点问题。并结合 EMR Serverless StarRocks 搭建了 Lakehouse 平台,最终实现不同场景下整体性能提升50%以上,同时综合成本下降30%。
|
1月前
|
弹性计算 运维 监控
阿里云 Serverless 助力盟主直播:高并发下的稳定性和成本优化
通过阿里云的 Serverless 产品和技术,盟主直播实现了核心直播平台的云原生架构升级,不仅解决了盟主直播现有业务面临的挑战,还面向未来为盟主直播的平台扩展性提供了技术基础,有效提升了行业竞争力。
|
2月前
|
弹性计算 Cloud Native Serverless
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品
阿里云 SAE 邀您参加 Serverless 高可用架构挑战赛,赢取精美礼品。
|
1月前
|
人工智能 运维 物联网
云大使 X 函数计算 FC 专属活动上线!享返佣,一键打造 AI 应用
如今,AI 技术已经成为推动业务创新和增长的重要力量。但对于许多企业和开发者来说,如何高效、便捷地部署和管理 AI 应用仍然是一个挑战。阿里云函数计算 FC 以其免运维的特点,大大降低了 AI 应用部署的复杂性。用户无需担心底层资源的管理和运维问题,可以专注于应用的创新和开发,并且用户可以通过一键部署功能,迅速将 AI 大模型部署到云端,实现快速上线和迭代。函数计算目前推出了多种规格的云资源优惠套餐,用户可以根据实际需求灵活选择。
|
5月前
|
人工智能 自然语言处理 Serverless
阿里云函数计算 x NVIDIA 加速企业 AI 应用落地
阿里云函数计算与 NVIDIA TensorRT/TensorRT-LLM 展开合作,通过结合阿里云的无缝计算体验和 NVIDIA 的高性能推理库,开发者能够以更低的成本、更高的效率完成复杂的 AI 任务,加速技术落地和应用创新。
290 13
|
1月前
|
存储 人工智能 Serverless
7分钟玩转 AI 应用,函数计算一键部署 AI 生图大模型
人工智能生成图像(AI 生图)的领域中,Stable Diffusion WebUI 以其强大的算法和稳定的输出质量而闻名。它能够快速地从文本描述中生成高质量的图像,为用户提供了一个直观且高效的创作平台。而 ComfyUI 则以其用户友好的界面和高度定制化的选项所受到欢迎。ComfyUI 的灵活性和直观性使得即使是没有技术背景的用户也能轻松上手。本次技术解决方案通过函数计算一键部署热门 AI 生图大模型,凭借其按量付费、卓越弹性、快速交付能力的特点,完美实现低成本,免运维。

热门文章

最新文章