安全组中已经添加规则放行SSH端口的访问之后如何使用f1 RTL
本文在介绍安全组中已经添加规则放行SSH端口的访问之后如何使用f1 RTL的基础上,重点探讨了其具体步骤,本文内容很紧凑,希望大家耐心学习。
使用f1 RTL
本文描述如何使用f1 RTL(Register Transfer Level)。
说明:
本文所述所有操作都必须由同一个账号在同一地域里执行。
强烈建议您使用RAM用户操作FaaS实例。为了防止意外操作,您需要让RAM用户仅执行必要的操作。在操作FPGA镜像及下载时,因为您需要从指定的OSS Bucket下载原始DCP工程,所以您必须为FaaS管理账号创建一个角色,并授予临时权限,让FaaS管理账号访问指定的OSS Bucket。如果需要对IP加密,必须授予RAM用户KMS相关权限。如果需要做权限检查,必须授予查看用户资源的权限。
前提条件
创建f1实例,确保实例能访问公网,并且实例所在安全组中已经添加规则放行SSH(22)端口的访问。
说明:f1实例只能使用镜像市场的FaaS F1基础镜像。详细信息,请参见 创建f1实例。
您已经 登录ECS管理控制台,在f1实例的详情页上,获取实例ID。
您必须先 开通OSS服务,并 创建一个OSS Bucket 用于上传您的文件。Bucket与f1实例必须属于同一个账号、同一个地域。
如果需要加密服务,您还需要 开通密钥管理服务(KMS)。
使用RAM用户操作FPGA,必须完成以下操作:
创建RAM用户 并 授权。
创建RAM角色 并 授权。
获取AccessKey ID和AccessKey Secret。
操作步骤
按以下步骤使用f1 RTL。
第 1 步. 远程连接f1实例
远程连接Linux实例。
第 2 步. 配置基础环境
运行以下脚本配置基础环境。
source /opt/dcp1_0/script/f1_env_set.sh
第 3 步. 编译工程
运行以下命令:
cd /opt/dcp1_0/hw/samples/dma_afu run.sh
说明:编译时间较长,请耐心等待。
第 4 步. 制作镜像
按以下步骤制作镜像:
运行命令初始化 faascmd。
#如果需要,添加环境变量及运行权限 export PATH=$PATH:/opt/dcp1_0/script/ chmod +x /opt/dcp1_0/script/faascmd # 将hereIsYourSecretId替换为您的AccessKey ID,hereIsYourSecretKey替换为您的AccessKey Secret faascmd config --id=hereIsYourSecretId --key=hereIsYourSecretKey # 将hereIsYourBucket换为华东1地域里OSS Bucket名称 faascmd auth --bucket=hereIsYourBucket
确认在/opt/dcp1_0/hw/samples/dma_afu目录下,运行以下命令上传gbs文件。
faascmd upload_object --object=dma_afu.gbs --file=dma_afu.gbs
运行以下命令制作镜像。
# 将hereIsYourImageName替换为您的镜像名称 faascmd create_image --object=dma_afu.gbs --fpgatype=intel --name=hereIsYourImageName --tags=hereIsYourImageTag --encrypted=false --shell=V0.11
第 5 步. 下载镜像
按以下步骤下载镜像到f1实例:
查看镜像是否制作成功:运行命令 faascmd list_images。
返回结果里,如果出现"State":"success",表示镜像制作成功。请记录返回结果里显示的FpgaImageUUID,稍后会用到。
运行命令获取FPGA ID。
# 将hereIsYourInstanceId替换为您的f1实例ID faascmd list_instances --instanceId=hereIsYourInstanceId
以下为返回结果。请记录FpgaUUID。
运行命令下载FPGA镜像到f1实例。
# 将hereIsYourInstanceID替换为刚刚保存的实例ID;将hereIsFpgaUUID替换为上一条命令中记下的FpgaUUID;将hereIsImageUUID
替换为上一步记下的FpgaImageUUID
faascmd download_image --instanceId=hereIsYourInstanceID --fpgauuid=hereIsFpgaUUID --fpgatype=intel --imageuuid=hereIsImageUUID --imagetype=afu --shell=V0.11
运行命令检查是否下载成功。
# 将hereIsYourInstanceID替换为刚刚保存的实例ID;将hereIsFpgaUUID替换为上一条命令中记下的FpgaUUID; faascmd fpga_status --instanceId=hereIsYourInstanceID --fpgauuid=hereIsFpgaUUID
如果返回结果里出现"TaskStatus":"operating"时,且FpgaImageUUID和下载镜像时的FpgaImageUUID一致,说明下载成功。
第 6 步. 测试
依次运行以下命令。
cd /opt/dcp1_0/hw/samples/dma_afu/sw make sudo LD_LIBRARY_PATH=/opt/dcp1_0/hw/samples/dma_afu/sw:$LD_LIBRARY_PATH ./fpga_dma_test 0
如果您看到如图所示的输出结果,说明测试完成。
以上是安全组中已经添加规则放行SSH端口的访问之后如何使用f1 RTL的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

要打开 web.xml 文件,可以使用以下方法:使用文本编辑器(如记事本或 TextEdit)使用集成开发环境(如 Eclipse 或 NetBeans)使用命令行编辑命令(Windows:notepad web.xml;Mac/Linux:open -a TextEdit web.xml)

语言多线程可以大大提升程序效率,C 语言中多线程的实现方式主要有四种:创建独立进程:创建多个独立运行的进程,每个进程拥有自己的内存空间。伪多线程:在一个进程中创建多个执行流,这些执行流共享同一内存空间,并交替执行。多线程库:使用pthreads等多线程库创建和管理线程,提供了丰富的线程操作函数。协程:一种轻量级的多线程实现,将任务划分成小的子任务,轮流执行。

Linux最适合用作服务器管理、嵌入式系统和桌面环境。1)在服务器管理中,Linux用于托管网站、数据库和应用程序,提供稳定性和可靠性。2)在嵌入式系统中,Linux因其灵活性和稳定性被广泛应用于智能家居和汽车电子系统。3)在桌面环境中,Linux提供了丰富的应用和高效的性能。

使用Go语言连接Oracle数据库时是否需要安装Oracle客户端?在使用Go语言开发时,连接Oracle数据库是一个常见需求�...

无法以 root 身份登录 MySQL 的原因主要在于权限问题、配置文件错误、密码不符、socket 文件问题或防火墙拦截。解决方法包括:检查配置文件中 bind-address 参数是否正确配置。查看 root 用户权限是否被修改或删除,并进行重置。验证密码是否准确无误,包括大小写和特殊字符。检查 socket 文件权限设置和路径。检查防火墙是否阻止了 MySQL 服务器的连接。

我开发了一个名为Lua-Libuv的项目,并乐于分享我的经验。项目初衷是探索如何利用Libuv(一个用C语言编写的异步I/O库)构建简单的HTTP服务器,而无需深入掌握C语言。借助ChatGPT的辅助,我完成了HTTP.C的基础代码。在处理持久连接时,我成功实现了在适当的时机关闭连接并释放资源。起初,我尝试创建一个简单的服务器,通过关闭连接来结束主程序,但遇到了一些问题。我尝试过使用流式传输发送数据块,虽然有效,但这会阻塞主线程。最终,我决定放弃这个方法,因为我的目标并非深入学习C语言。最终,我

C语言条件编译是一种根据编译时条件选择性编译代码块的机制,入门方法有:使用#if和#else指令根据条件选择代码块。常用条件表达式包括STDC、_WIN32和linux。实战案例:根据操作系统打印不同消息。根据系统位数使用不同的数据类型。根据编译器支持不同的头文件。条件编译增强了代码的可移植性和灵活性,使其适应编译器、操作系统和CPU架构变化。

1.0.1前言这个项目(包括代码和注释)是在我自学Rust的过程中记录的。可能有不准确或表述不清的地方,还请大家谅解。如果您从中受益,那就更好了。1.0.2为什么使用RustRust可靠且高效。Rust可以取代C和C,性能相似但安全性更高,并且不需要像C和C那样频繁重新编译来检查错误。主要优点包括:内存安全(防止空指针取消引用、悬空指针和数据争用)。线程安全(确保多线程代码在执行前是安全的)。避免未定义的行为(例如,数组越界、未初始化的变量或访问已释放的内存)。Rust提供现代语言功能(例如泛型
