ChrisCummins / paper-end2end-dl

📝 "End-to-end Deep Learning of Optimization Heuristics" (🥇 PACT'17 Best Paper)
https://chriscummins.cc/pub/2017-pact.pdf
GNU General Public License v3.0
72 stars 21 forks source link

[Building from source unsuccesfull] #1

Open vinayak618 opened 4 years ago

vinayak618 commented 4 years ago

Hi @ChrisCummins,

Thank you so much for your work on deep learning heuristics on compiler optimizations. The paper looks promising and i read it couple of days back and though of checking out your implementations. But it looks many build files are not updated and hence leading to failure of reproducing your code. Is there any other way, where we can easily setup and start using the repo?

Thanks, Vinayak

ChrisCummins commented 4 years ago

Hi Vinayak!

Apologies for the slow reply. I haven't maintained this repo since the publication of our paper, so some dependencies may have become stale and no longer work. I would need more details to diagnose the problem.

I do have an actively maintained port of the DeepTune system available in my phd repo, see this script:

https://github.com/ChrisCummins/phd/blob/master/deeplearning/deeptune/opencl/heterogeneous_mapping/heterogeneous_mapping.py

Hope that helps.

Cheers, Chris

laurenluckiez commented 3 years ago

Hi Chris, thank you for the good material. Your work looks very interesting!

I am trying to build your repo but the installation fails when I get the following error:

You may now build CLgen by running 'make'. source /home/user/paper-end2end-dl/code/build/deeptune/bin/activate && cd build/clgen && make make[1]: Entering directory '/home/user/paper-end2end-dl/code/build/clgen' cd /home/user/paper-end2end-dl/code/build/clgen/native/libclc/d0f8ca7247ded04afbf1561fc5823c3e3517d892 && ./configure.py --with-llvm-config=/home/user/paper-end2end-dl/code/build/clgen/native/llvm/3.9.0/build/bin/llvm-config Traceback (most recent call last): File "./configure.py", line 68, in llvm_version = string.split(string.replace(llvm_config(['--version']), 'svn', ''), '.') AttributeError: module 'string' has no attribute 'split' make/libclc.make:56: recipe for target '/home/user/paper-end2end-dl/code/build/clgen/native/libclc/d0f8ca7247ded04afbf1561fc5823c3e3517d892/utils/prepare-builtins.o' failed make[1]: [/home/user/paper-end2end-dl/code/build/clgen/native/libclc/d0f8ca7247ded04afbf1561fc5823c3e3517d892/utils/prepare-builtins.o] Error 1 make[1]: Leaving directory '/home/user/paper-end2end-dl/code/build/clgen' Makefile:51: recipe for target '/home/user/paper-end2end-dl/code/build/deeptune/bin/clgen' failed make: [/home/user/paper-end2end-dl/code/build/deeptune/bin/clgen] Error 2

It seems to be a versioning error, but when I fix the problem (in that case replace 'string' with 'str') I get new errors. I use Python 3.6.8.

Is there any solution I should apply? Or could you provide us with a Dockerfile with the correct dependencies in order to succesfully build the repo?

Thank you in advance!

ChrisCummins commented 3 years ago

Hi @laurenluckiez, apologies for the slow response.

That's an interesting bug. Looks like the version of libclc which this project uses (which is now very out-of-date) fails to build using modern python. If you take a look at the upstream libclc configure script, it looks like that line has changed: https://github.com/llvm-mirror/libclc/blob/master/configure.py#L71

Perhaps you could try replacing that one line, or just updating the entire libclc version to something more recent?

Cheers, Chris