mkongiv / polycross-comp-ics21

ICS'21 Artifact - A Polyhedral Cross-Compilation Approach for Tile Size Selection of Affine Programs on GPGPUs
2 stars 0 forks source link

How to compile on ppcg? #1

Open Ming0816 opened 1 year ago

Ming0816 commented 1 year ago

After watching the paper and your github README.md page, I can compile the polybechmark and generate C files (.atss..c) by invoking the python script gpu_tss.py, but I'm not sure how to do the cross compile on the ppcg. If I generated gemm.V100.c by pocc, should I directly compile ppcg gemm.V100.c -o obj or set the selected tile sizes for each kernel to ppcg and compile the original gemm.c? I'm not really sure what's the right way to type in ppcg to generate cuda code.

mkongiv commented 1 year ago

Towards the compilation process end on the PoCC side, the tile sizes are reported next to the "Theta" schedules. Extract them and plug them into PPCG. The "cross-compilation" aspect refers to the internal modeling in PoCC scheduler. The C files generated with PoCC are not meant to be compiled or executed.

Ming0816 commented 1 year ago

Thank you so much!! Would it be correct if I type the command below according to the dummt.log: ppcg --sizes="{kernel[0] -> tile[12,308]; kernel[1] -> tile[12,308,12]}" /polybench-c-3.2/linear-algebra/kernels/gemm/gemm.c -o obj

python gpu-tss.py gemm.c V100 2000 vector-mode image