Workshop Design - 2023.2 English

Vitis Libraries

Release Date
2023-12-20
Version
2023.2 English

Workshop consist of the following 3 parts:

  • A vector of Worker: each Worker instance will manage 1 Alveo card and managed device buffers their host mapping pinned buffers. They will handle 1) migration of input data from pinned memory to device memory, 2) kernel arguments setup and kernel call, 3) migration of meta data from device memory to pinned memory, 4) migration of result data from device memory to pinned memory based on meta data.
  • 1 MemCoppier, from host to pinned : has 8 threads to performance memcpy task from input memory to host mapping pinned buffer.
  • 1 MemCoppier, from pinned to host : has 8 threads to performance memcpy task from input memory to host mapping pinned buffer.

Workshop’s constructor will find all cards with the same desired shell, and load them with the xclbin files provided. After the constructor is done, it will create same number of worker with cards for managements. The openCL related context, program, kernel, command queue will only be released if the release function is called.

Workshop support to performance Join on multiple cards, with asynchronous input and output. Please take reference of L3/tests/gqe/join case as example of how to notify readiness of each input section and how to wait for readiness of output sections.

Workshop support two solultions for Join. Solution 1 is like Joiner’s solution 1, solution 2 is like Joiner’s solution 2. It does not provide standalone solution 0 because it is could be covered by solution 1. Workshop will handle task distribution between workers so this will be transparent to caller.