leliyliu / ICS

智能计算系统课程(陈云霁)课后作业记录
55 stars 20 forks source link

plugin_power_difference_kernel.mlu 实现问题 #5

Closed Wei-i closed 3 years ago

Wei-i commented 3 years ago

作者您好,首先感谢您作业和章节的分享! 然后我看完您的实验一banc算子的实现代码,并且按照您的代码 bash mask.sh编译后, 运行power_diff_test 得到的err rate =100% 我有些疑惑,我想请教您以下2个问题:

  1. bang_mul(temp_nram,temp_nram,temp_nram,ONELINE); 我认为应该设置一个temp 和一个res temp = input1 - input2 res = input1 - input2 如果只用temp的话 temp = input1-input2 temp =temp * temp 函数改成bang_mul(res,temp_nram,res,ONELINE);这样? res = res * temp
  2. __bang_active_abs(temp_nram,temp_nram,ONELINE);请问为什么要绝对值呢? if x < y ,(x-y)^3 不是负的吗? 希望不吝赐教 谢谢!
leliyliu commented 3 years ago

谢谢您提出的问题! 整个的问题实际上就是powerdifference 算子本身实现的过程,实际上你可以通过利用tensorboard 查看网络图来了解powerdifference 算子在原网络中的表示。 这样可能会更清晰地了解(也可以参考后续试验的分析)

  1. 这两种实现方式是一样的,如果您不确定的话,可以将两种方式得到的结果进行比较,写一个脚本判定即可。
  2. powerdifference 实际上是计算相应的距离内容(距离保证为正), 这是算子本身的计算性质决定的。
Wei-i commented 3 years ago

谢谢再次感谢您耐心的解答~祝学业进步!