当前位置: 主页 > 建站知识 > 软件开发

借助开源项目,学习软件开发-学习开发安卓软件

发布时间:2023-02-12 10:23   浏览次数:次   作者:佚名

优秀的Verilog/FPGA开源项目介绍(三)——大厂的项目

谷歌开源芯片项目OpenTitan

image.png

OpenTitan 是谷歌开发的一个项目借助开源项目,学习软件开发,旨在鼓励制造商为数据中心和消费设备开发所谓的信任根技术。

如果说一个系统有信任根,那就意味着它有一个专门的芯片或模块负责阻止黑客。 例如,在谷歌最新的 Pixel 4 手机中,Titan M 微控制器就扮演了这个角色。 这是一个微处理器(如图),可在用户打开手机时验证固件的完整性。

image.png

与此同时,在数据中心,信任根通常是所谓的硬件安全模块,这是一种“保护”服务器用来加密敏感数据的加密密钥的专用设备。 硬件安全模块与网络的其余部分隔离,并且通常放置在防篡改位置。 几乎所有超大规模云提供商,以及思科和 HPE 等知名数据中心基础设施供应商,都有自己的信任根技术,但根据谷歌及其合作伙伴的说法,这就是问题所在。

谷歌云 OpenTitan 负责人多米尼克·里佐 (Dominic Rizzo) 表示,硅信任根是“一个高度专有的空间。因此我们所做的是开放一切,以便您可以在硬件的最低层确保安全,而不是盲目地信任专有技术。 “ 通过设计……我们相信透明度是安全的基础。”

OpenTitan 信任根技术可用于广泛的硬件,包括主板、网卡、路由器、物联网设备、移动和消费设备、机器学习系统等。

根据谷歌的说法,OpenTitan 基于三个关键原则:任何人都可以检查硅信任根并向其贡献代码; 通过提供不受供应商锁定影响的逻辑上安全的开放式设计来提高灵活性; 质量,不仅通过设计本身来保证,还通过参考固件和文档来保证。

谷歌希望借助OpenTitan,为业界提供开发信任根产品的通用技术基础模块。 这家搜索巨头目前正在使用流行的 RISC-V 架构为该项目开发专用芯片设计。 许多其他组件或部件也正在开发中,包括固件、为处理加密任务而优化的协处理器,以及用于创建加密密钥的物理随机数生成器。

官网链接:

文档链接:

阿里(平头哥)的AloT芯片平台无剑100

平头无剑100

image.png

文档目录如下:

学习开发安卓软件_借助开源项目,学习软件开发_不借助软件美化win7

|--Project                //open source project work directory  
  |--riscv_toolchain      //tool chain install directory download from t-head.cn
  |--wujian100_open       //wujian100_open project get from github
    |--case               //test case example for simulation
    |--doc                //wujian100_open user guide
    |--fpga               //FPGA script
    |--lib                //compile script for simulation
    |--regress            //regression result
    |--sdk                //software design kit
    |--soc                //Soc RTL source code
    |--tb                 //test bench
    |--tools              //simulation script and setup file
    |--workdir            //simulation directory
    |--LICENSE
    |--README.md

\_open 亚马逊 aws-fpga

不借助软件美化win7_借助开源项目,学习软件开发_学习开发安卓软件

AWS EC2 FPGA 开发套件是一套开发和运行时工具,用于在 Amazon EC2 F1 实例上开发、模拟、调试、编译和运行硬件加速应用程序。 它分布在这个 github 存储库和 AWS 提供的 FPGA Developer AMI - Centos/AL2 之间,无需任何开发工具成本。

⚠️ 注意:开发包只支持Linux操作系统。

开发过程

创建 FPGA 设计(也称为 CL - 自定义逻辑)后,开发人员可以创建 Amazon FPGA Image (AFI) 并将其轻松部署到 F1 实例。 AFI 可重用、可共享,并且可以以可扩展且安全的方式进行部署。

image.png

开发环境

image.png

NVIDIA 深度学习加速器

深度学习开源项目。 NVIDIA 深度学习加速器 (NVDLA) 是一种免费的开放式架构,有助于采用标准方法来设计深度学习推理加速器。 凭借其模块化架构借助开源项目,学习软件开发,NVDLA 具有可扩展性、高度可配置性,并且专为易于集成和便携性而设计。

结构如下:

image.png

目录结构

该项目包含与 NVDLA 硬件版本相关的 RTL、C 模型和测试平台代码。 在此存储库中,您将找到:

vmod/ -- RTL 模型,包括:
     vmod/nvdla/ -- NVDLA 的 Verilog 实现
     vmod/vlibs/ -- 库和单元模型

借助开源项目,学习软件开发_不借助软件美化win7_学习开发安卓软件

vmod/rams/ -- NVDLA 使用的 RAM 行为模型 syn/ -- NVDLA 合成脚本示例 perf/ -- NVDLA 的性能估算器电子表格 verif/ -- 用于基本健全性验证的跟踪播放器测试平台 verif/traces/ -- 与各种网络相关的样本跟踪 tool——用于构建 RTL 和运行模拟/综合等的工具。 spec -- RTL 配置选项设置。

目前我所了解的就是以上项目。 总的来说,它们在完整性、实用性和先进性(在各个高级领域)上都处于比较领先的地位,但有些项目可能过于复杂,不适合新手直接上手。 ,需要在某个领域深入了解才能理解。 但是这些大厂的开源项目可以借鉴代码部分,尤其是一些代码规范。

百度桨精简版

Paddle Lite 是一个高性能、轻量级、灵活且易于扩展的深度学习推理框架,定位于支持移动、嵌入式和服务器等多种硬件平台。

目前,飞桨精简版不仅全面应用于百度内部业务,也成功支撑了众多外部用户和企业的生产任务。

Paddle Lite支持基于arm的FPGA zu3/zu5/zu9的模型预测,并提供armv8交叉编译

PaddleLite通过调用底层驱动实现FPGA硬件的调度,目前只支持百度Edgeboard开发板

image.png

轧机技术

image.png

借助开源项目,学习软件开发_学习开发安卓软件_不借助软件美化win7

轧机技术

image.png

黑金

\_images/FPGA\_demo/soft\_arch.png

FPGA精简实现介绍

Lite支持FPGA作为模型推理的后端硬件。 其主要特点如下:

PaddleLite FPGA版本支持原生流体模型,无需使用opt工具进行格式转换。

Lite中的FPGA内核(feed和fetch除外)使用FP16和NHWC格式作为输入和输出格式,所有的weights和biases仍然是FP32和NCHW格式,feed input和fetch output都是FP32和NCHW格式的数据,而提高计算速度,可以让用户意识不到数据格式

对于FPGA不支持的内核,会切换回arm端,实现arm+FPGA混合部署运行

目前FPGA的成本和功耗都比较低。 Lite基于FPGA的模型性能远优于arm端,可以作为边缘设备的首选硬件。

经过验证的 Paddle 模型分类网络:

MobileNet系列

MobileNetV1

MobileNetV2

ResNet系列

ResNet18 ResNet34 ResNet50 ResNet101 ResNet152 Res2Net50

学习开发安卓软件_不借助软件美化win7_借助开源项目,学习软件开发

SE-ResNet

ResNext 系列

ResNext50 ResNext101

SE-ResNext

盗梦空间系列

盗梦空间V3

盗梦空间V4

检测网络:

SSD系列主干

Mobilenet-SSD

VGG-固态硬盘

ResNet-SSD

YOLO-V3系列主干

暗网50

MobileNet-V1

ResNet

小优洛

原文:FPGA逻辑