File tree Expand file tree Collapse file tree 1 file changed +1
-7
lines changed Expand file tree Collapse file tree 1 file changed +1
-7
lines changed Original file line number Diff line number Diff line change @@ -620,12 +620,6 @@ void Scale(const Context& dev_ctx,
620620
621621> FAQ:
622622
623- > - 为什么需要使用模板参数?为什么不和torch一样,没有模板参数?
624- - 运行时数据类型T和设备Device的选择是在kernel选择时必要的操作,各个框架都是一样的
625- - torch在写法上避免了用模板实现kernel选择,但实际上采用了全局kernel map查找的选择方式,这种方式的开销是比较重的,一个kernel的执行过程中,可能存在多次kernel map的查找
626- - 基本流程如下图:
627- - 
628- - 这种方式存在的性能问题已经被torch自身认识到,所以torch也在做算子库重构,但是积重难返,他们重构也并未对此问题从根本上解决,只是减少了一些redispatch的层数,我们不能一味模仿竞品自身都认为有问题的设计
629623> - 为什么第一个参数需要是DeviceContext?为什么不能不传?
630624 - phi kernel要求是纯函数形式,即函数内使用的变量均通过参数传入,或者在函数内部创建,不允许在函数内部使用全局单例,为了适配多样的kernel需求,像DeviceContext这种存储上下文信息的参数是必要的
631625> - 为什么需要两个模板参数?
@@ -1697,7 +1691,7 @@ API和Op都是对算子运行行为的概要描述,本质上只是同一段内
16971691
16981692推理之前为什么要做** 算子增强推全** ,就是op的参数太多了,但API的参数很少,这两者本来是介绍一个东西,却差别如此之大,所以需要发动全员,在op的某些参数上标记AsExtra,就声明这个参数可能是多余的。
16991693
1700- 当然我们演变到如此田地 ,有一定历史原因:
1694+ 当然我们演变成现在这样 ,有一定历史原因:
17011695
170216961 . Op输入输出参数规范限制差,留的口子太大,可以天马行空地写;
170316972 . 2.0 API对外层Python API的形态做了大范围规整,但是Op层保持不变,是导致目前同一段描述差异变大的一个主要原因。
You can’t perform that action at this time.
0 commit comments