XiaoMi/mace

请教MACE专家关于lws的问题

Shaquille-Wu opened this issue · 5 comments

各位MACE专家,小弟最近在研究mace中关于lws的设定算法。
以depthwise_conv2d为例,LocalWS的方法涉及到了cache_size,小弟搞不明白其逻辑为什么是那样, 有相关的资料吗?
小弟搞不明白kBaseGPUMemCacheSize,小弟看了一下,这是常量,为什么取16384?

lu229 commented

@Shaquille-Wu 只是经验数值, 这个LocalWS获得数值不是最优的, 最优的需要tuning出来

其实用cu和wave_size的方式不也很好吗?为什么要用cache做判断基准呢

lu229 commented

@Shaquille-Wu 一般来说,计算瓶颈是内存而不是算力

谢谢MACE专家的解答
另外,gws的形式基本上是{ channel/4, w/4, h },为什么不是{ w/4, h, channel/4 }呢
实际上我测试过,后者会比前者慢一点,这个有什么讲究吗?具体原因是什么呢?

lu229 commented

@Shaquille-Wu 不好意思没看到,h*b放在最外面是因为其是最后一个维度, 就像多维数组进行for循环遍历时,如果把最外围放到内部,会存在内存局部性的问题导致性能下降