Closed Kuree closed 6 years ago
Re 3., I think having a halide function taking a file descriptor might not be a good change, as no other device targets of halide use this kind of interface. If the goal is to use an existing fd
instead of creating a new one in halide_zynq_init
, you can probably add a new runtime function called halide_zynq_set_fd
to override the fd
in zynq.cpp.
Also, this PR includes a number of changes. It would be good to split it into a couple smaller PRs.
Thanks for the suggestions. I will close this PR for now and splits them into multiple PRs.
This pull request reflects recent changes in
hwacc
/cmabuffer
used inultrazynqbuilder
, as well as new application needs fromf4graph
. Here is a list of detailed changes:unsharp
anddemosaic_flow
applications on Zynq. That is, we can now compile and run without running into any error.guess_name
function in HLS codegen so that instead of usingarg_%d
, it's now using more human readable naming used in Halide code. This is extremely helpful because user now can specify the DMA channel loading order in the driver code automatically, given thepipeline_zynq
buffer preparing sequence. If the code fails to guess the argument name, it will fall back toarg_%d
.hwacc
driver code so that it reads information directly from device tree, instead of through parametrization (one driver to rule them all.)halide_zynq_init()
. This is necessary sincef4graph
loads the kernel throughdl
, which cannot runhalide_zynq_init()
.hls_target
's register space. As a result, its height is always 1, as specified inbuffer_to_stencil()
inHalideRuntimeZynq
. This will be handled byhwacc
driver accordingly.UBuffer
instead ofcma_buffert
.