Closed hecmay closed 3 years ago
Docker image with HeteroCL and AutoSA installed: https://hub.docker.com/repository/docker/cornellzhang/heterocl
$ docker pull cornellzhang/heterocl:autosa
$ docker run -it cornellzhang/heterocl:autosa bash
# activating conda env
$ source /opt/conda/etc/profile.d/conda.sh
$ conda activate hcl
This PR will integrate AutoSA and expose the
AutoSA integration
Installation:
AutoSA has a lot of dependencies. It will be hard to satisfy all of these requirements using conda. This PR provides a Dcokerfile to build an image containing pre-biult HeteroCL and AutoSA binaries. The users can pull back the docker image and run the code inside the docker container.
Implementation:
instead of introducing a new IR for AutoSA, I will reuse the
ExternModule
IR node. The stage to be offloaded to AutoSA will be wrapped inside theExternModule
node. In the VHLS CodeGen stage, the HeteroCL compiler should invoke AutoSA to generate optimized VHLS code from theExternModule
body. This optimized systolic array VHLS code block is then plugged into the original code as a soft IP.User Interface:
As decribed in HeteroCL paper, users need to call the
systolic()
primitive to convert a compute stage to an optimized systolic array using AutoSA.