Hi, I’m studying the VTA architecture. While reading the paper, I was curious about the VTALoadBuffer2D function in the VTA memory system.
If you look at the header of the function, you can see
VTALoadBuffer2D (VTACommandHandle cmd),
void* src_dram_addr,
uint32_t src_elem_offset,
uint32_t x_size,
uint32_t y_size,
uint32_t x_stride,
uint32_t x_pad_before,
uint32_t y_pad_before,
uint32_t x_pad_after,
uint32_t y_pad_after,
uint32_t dst_sram_index,
uint32_t dst_memory_type);
It is defined as . And in the paper,
produce B_buf {
VTALoadBuffer2D ( t v m _ t h r e a d _ c o n t e x t ( VTATLSCommandHandle ( ) ) , B , 0 , 6 4 , 1 , 6 4 , 0 , 0 , 0 , 0 , 6 4 , 3 )
}.
B => src_dram_addr confirms the address of the global DRAM. Then I know it’s 64 = dst_sram_index. SRAM would be local memory above vta, how can the user set the SRAM_index value?