Spaces:
Sleeping
Sleeping
Ticket Name: TDA2: VCOP and memory access | |
Query Text: | |
Part Number: TDA2 Hi, Following is environment detail : Platform - TDA2X - EVM. VisionSDK 3.x I have a Link that runs on EVE and accesses the buffer allocated from shared memory (Say camera buffer from SDRAM) -- allocated via Vision SDK Link and Chain framework. I wanted to use write VCOP kernel and call it from EVE/ARP32, which would execute algorithm/computation on this buffer on VCOP and get the result back on EVE . However, it seems that: 1. VCOP would work always on IBUFLA, IBUFLB, IBUFHA, IBUFHB and WBUF internal memory. 2. VCOP Can not access DMEM of ARP32 3. EVE can access IBUFLA, IBUFLB, IBUFHA, IBUFHB and WBUF Queries : Q1. Can you please confirm understanding on #1, #2 #3? Q2. If this is the case, then is it expected to do memcpy/dma from external memory to VCOP internal memory before executing kernel on VCOP ? Q3. Is there is way to avoid this memory copy / block copy ? Thanks, Uday | |
Responses: | |
Hi Uday, Please find my answers as follows: Q1. Can you please confirm understanding on #1, #2 #3? Understanding of #1 and #2 are correct. Regarding #3, what do you mean by EVE can access? If you meant ARP32 then yes ARP32 can access all the internal memories ( including DMEM) but the access is still dependent on the ownership of the buffer. Both ARP32 and VCOP cannot simultaneously access the same buffer. Q2. If this is the case, then is it expected to do memcpy/dma from external memory to VCOP internal memory before executing kernel on VCOP ? Yes, you need to DMA the data first from external memory to internal memories of EVE subsystem before VCOP can process it. Q3. Is there is way to avoid this memory copy / block copy ? No, this cannot be avoided as VCOP can only work with data being in internal memory of EVE (IBUF's and WBUF). Regards, Anshu | |
Hello Uday, Please refer to the attached presentation. It covers the topics you are referring to: Q1. Can you please confirm understanding on #1, #2 #3? Your understanding is correct for #1, #2. For #3, I assume you meant ARP32 can access IBUFLA, IBUFLB, IBUFHA, IBUFHB and WBUF. Q2. If this is the case, then is it expected to do memcpy/dma from external memory to VCOP internal memory before executing kernel on VCOP ? Yes, this is correct. Q3. Is there is way to avoid this memory copy / block copy ? No there isn't any other way for VCOP to access external memory as there is no data cache, neither any direct access to memories other than the image buffers and working buffer. However the copy can be done concurrently with VCOP processing so you are not wasting any cycles as long as your compute cycles exceed the transfer cycles. Implementation of an EVE App.pdf | |