Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

广播机制支持 #46

Open
wanghailu0717 opened this issue Oct 20, 2023 · 0 comments
Open

广播机制支持 #46

wanghailu0717 opened this issue Oct 20, 2023 · 0 comments
Assignees

Comments

@wanghailu0717
Copy link
Contributor

wanghailu0717 commented Oct 20, 2023

1.张量广播是一个深度学习中常见的操作。普遍显性或者隐性地存在于各种网络中。
1.1 所谓显性是指用户网络中显示调用了相关算子(expand,broadcast等),该操作在内存上真实地在显存上(使用各种方法)拼接生成出了广播后的张量,通常该操作不是原地的。由于显示拼接,具体执行时出现了很多IO操作,造成空间与时间的双重浪费。
1.2 所谓隐性是指部分算子自带张量广播机制(boadcast_add 等),该操作通过逻辑映射关系尽可能地减少了IO以及空间占用,性能提升。但是这一部是将复杂性交给了算子开发者。
2.由于面向DDR的算子的入与出都在DDR上,这显然是一个明显的性能瓶颈。
3.我们期望在系统中添加如下的功能
3.1 前端接口(优先):用户可以使用 Micro+ TileTensor 的方式定义计算逻辑。这里我们可以添加一个强制性的约定——并行度定义,一个复杂任务将会拆解出多个并行度,多个并行的流独立执行,互不干扰。用户确认切分方式,并定义计算流。系统将这些信息下降至最终的cuda/bang/等其他代码。
3.2 Broadcast 支持(基于3.1):我们期望支持三种类型的广播机制
之一,是广播核函数生成,生成独立的广播核函数;
之二,是识别图中双目运算的广播情景,生成广播+运算的核函数;
之三,添加一种隐含的映射机制,将广播操作解析为一种数据读入方式,融合至后续的任一算子内。
4.可能的参考资料
https://github.com/pytorch/pytorch
https://github.com/numpy/numpy
https://github.com/tensorflow/tensorflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants