我在用`hipprof`调优我的内核,对于几个数据项有疑问
例如我的数据为
```
kernel-name:"DoubleBufferTensorConv3d_64x64x16_ds_read"
kernel dispatch index 0
gpu id 0
dispatch queue id 0
dispatch queue index 6
thread id 8635
grid size 1605632
work group size 256
shared memory size 16384
scratch size 0
vgpr count 7
sgpr count 5
fbarrier count 50529027
signal handle 0x0
kernel time 0.000589(s)
processed ALU instructions 48.888064(%)
performance 8525.141333(Gflops)
shared memory operation 1354752
shared memory bank conflict 5.706778(%)
L1 cache unit is active 79.915272(%)
L1 cache unit is stalled 35.128348(%)
L2 cache write unit is stalled 0.356674(%)
L2 cache hit rate 67.289333(%)
```
第一个问题:**vgpr和sgpr是什么意思**?我查阅的资料说vgpr是用来存储线程私有的数据的寄存器,而sgpr是用来存储线程共享的数据的寄存器。但是我的代码中定义了几十个私有变量,为什么vgpr只用了7个?
第二个问题:hipporf文档说`L1 cache unit is active `是指L1 缓存操作时间占比(%),`L1 cache unit is stalled`是指L1 缓存等待时间占比(%)。**这两个时间是什么意思**?L1缓存操作时间是指L1缓存读写的时间吗?L1缓存等待时间是指什么?数据的传输时间吗?而且**为什么这两个百分比相加会大于100%**?