【ESWIN实习】一、熟悉kernel编译流程

举报
ReCclay 发表于 2022/02/21 23:46:36 2022/02/21
【摘要】 任务 以矩阵乘法kernel为例子。 Kernel位置:pint_sdk/core/kernels/blas/level3/gemm-f32.h脚本:pint_sdk/core/kernel...

任务

以矩阵乘法kernel为例子。


一、初始编译实验

直接运行pint_sdk/core/kernels/blas/build.sh,会出现缺少一些头文件的报错,例如缺少:pintdev.h、pintmath.h等库。后尝试从Bitbucket上安装uaptool,由于缺少root权限,所以没有安装仓库中要求的依赖。

在这里插入图片描述
直接进行如下操作进行安装:

在这里插入图片描述
最后make install出现如下报错信息:

在这里插入图片描述
好像安装失败了?但是此时再执行./build.sh,竟然没有报错了?不知道我这个是否编译成功了呢?

在这里插入图片描述

二、更换服务器后再次编译

fpga03据说缺少一些环境信息,故更换fpga12再次进行尝试!

在这里插入图片描述

还是有报错,继续找问题…

在万工的帮助下,终于找到问题了,团队开发的最新代码都在dev-weekly分支上,不在master上,所以将分支切换到dev-weekly分支上即可编译通过!

git clone http://192.168.0.16:7990/scm/pan/pint_sdk.git
cd /home/xbwang/PINT/pint_sdk/core/kernels/blas
git status //查看分支状态
git branch -a //查看全部分支
git checkout remotes/origin/dev_weekly //切换到 dev_weekly 分支
git status //查看分支状态
./build.sh

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

编译成功截图如下:
在这里插入图片描述

疑问:

  • 1、同一个用户的不同服务器文件竟然都在?
  • 2、各个服务器的环境是不是不一样?
  • 3、BLAS LEVEL3是什么含义?

三、Convolution 2D 代码研读

官方文档整理版,可参考这里

三、BLAS Level geem(矩阵乘法) 代码研读

3.1、BLAS简介

BLAS【Basic Linear Algebra Subprograms,基础线性代数程序集】是一个应用程序接口【API】标准,用于规范发布基础基础线性代数操作的数值库【常用于向量或矩阵计算】。该程序集最初发布于1979年,并用于创建更大的数值程序包【例如:LAPACK】。在高性能计算领域,BLAS被广泛使用。

3.2、BLAS特点

1、BLAS按照功能被分为三个级别:

  • Level1:向量-向量计算,比如:点积【dot】,向量加法和乘法【axpy】,绝对值的和【asum】等。
  • Level2:向量-矩阵计算,比如:矩阵向量乘法【gemv】。
  • Level3:矩阵-矩阵计算,比如:矩阵乘法【gemm】。

2、每一种函数操作都区分不同的数据类型【单精度、双精度、复数】,比如:矩阵乘法分为sgemm【单精度一般矩阵乘法】、dsymm【双精度对称矩阵乘法】、zhemm【双精度复数埃米特矩阵乘法】。之所以要分这么多种,主要是针对每种不同类型的矩阵都要分别设计专门的算法,使得计算性能最优。

3.3、基本运算函数

在这里插入图片描述

:BLAS运算中的每个函数分为:单精度、双精度、复数和双精度复数4种类型。

3.3、Level1~3常见的运算函数

3.3.1、Level1:向量-向量计算

在这里插入图片描述

3.3.2、Level2:向量-矩阵计算

在这里插入图片描述

3.3.3、Level3:矩阵-矩阵计算

在这里插入图片描述

3.4、代码研读

注:命名前缀gemm-f32中,gemm表示矩阵乘法,f32表示float


参考

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/114023176

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。