NVlabs / timeloop

Timeloop performs modeling, mapping and code-generation for tensor algebra workloads on various accelerator architectures.
https://timeloop.csail.mit.edu/
BSD 3-Clause "New" or "Revised" License
303 stars 99 forks source link

Include the Mapper and Model applications in a library. #266

Closed gilbertmike closed 3 weeks ago

gilbertmike commented 1 month ago

Include the Mapper and Model applications in a new library by:

  1. Rename the applications from Application to application::Mapper or application::Model to avoid name collision. This also adds the application namespace.
  2. Include the sources for the mapper and model in a new library, called timeloop-applications.

Note that code that links to timeloop-applications also needs to link to timeloop-mapper.

Known Issues

angshuman-parashar commented 1 month ago

Build fails on MacOS Ventura 13.6.6, Macbook Pro M1, clang version 14.0.3 (clang-1403.0.22.14.1), target arm64-apple-darwin22.6.0.

Log attached. log.txt

gilbertmike commented 1 month ago

This seems to be caused by the way I'm including symbols in the libraries. I've included the application symbols in timeloop-mapper. Would you mind trying again now?

angshuman-parashar commented 1 month ago
src/applications/mapper/mapper.cpp:395:41: error: use of undeclared identifier 'oaves_prefix'
                                        oaves_prefix,
                                        ^

It looks like a bunch of output file names (around line 366) disappeared.

gilbertmike commented 1 month ago

Yes, I thought I moved all the file printing away since PyTimeloop stopped crashing, but I realized MapperThread also does a bunch of printing. Somehow these do not crash PyTimeloop so I did not catch them at first. I'm looking into it.

angshuman-parashar commented 3 weeks ago

Regression test passed. Merging.