arcana-lab / noelle

NOELLE Offers Empowering LLVM Extensions
MIT License
75 stars 36 forks source link

Autotuner #50

Closed edeiana closed 1 year ago

edeiana commented 2 years ago

Basic autotuner for noelle. Test with: $ make test_parallelized_autotuned.bc In tests/regression .

edeiana commented 1 year ago

@scampanoni what changes should I make?

edeiana commented 1 year ago

In order to force the autotuner to explore configurations where a specific technique (DOALL, HELIX, or DSWP) is forced, do the following:

1) Create autotuner_search.info file inside performance test dir. For example, in DOALL_challenge autotuner_space.info looks like this:

0 0 0 0 0 0 0 0 0 0 1 2 0 0 _0 14 8 0 0 0 2 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0

In this case we are forcing loop with ID 1 to only be a DOALL (the "_" is important, it means "force the technique"), and we are asking the autotuner to tune the remaining parameters (i.e., choose up to 14 cores and up to 8 for chunk size). To force DOALL use _0, HELIX _1, DSWP _2.

2) Run the autotuner using: $ make test_parallelized_autotuned.bc NOSEARCHSPACE=--nosearchspace NOFILTERING=--nofiltering

This disable the automatic generation of autotuner_space.info and its filtering of performant DOALL loops.

scampanoni commented 1 year ago

Great PR!

Minor comment: the files loopIDtoSrc.txt in tests/performance (one per performance test) do not get removed when "make clean" runs.

edeiana commented 1 year ago

Great PR!

Minor comment: the files loopIDtoSrc.txt in tests/performance (one per performance test) do not get removed when "make clean" runs.

Done!