Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docker: use pre-built mlir and cva6 toolchain #234

Merged
merged 15 commits into from
Sep 1, 2024
Merged

Conversation

jorendumoulin
Copy link

@jorendumoulin jorendumoulin commented Aug 14, 2024

this also adds the streamer-gemm and kul-cluster system, until we converge on the single system for all tests

@jorendumoulin jorendumoulin changed the title docker: use pre-built mlir toolchain at fixed commit docker: use pre-built mlir & cva6 toolchain Aug 19, 2024
Copy link

@JosseVanDelm JosseVanDelm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I overall like this, but I'm unsure about the current versioning strategy and I don't feel like we should build gcc ourselves (do we need to?)

util/container/Dockerfile Outdated Show resolved Hide resolved
util/container/Dockerfile Outdated Show resolved Hide resolved
util/container/Dockerfile Outdated Show resolved Hide resolved
util/container/Dockerfile Outdated Show resolved Hide resolved
@jorendumoulin jorendumoulin marked this pull request as draft August 21, 2024 12:00
@jorendumoulin
Copy link
Author

this is a draft @JosseVanDelm
that explains the test tags
CVA6 official repo says this:
image

the commented code is because the container was running out of memory trying to build the system, because of many tcdm connections. not the case anymore since #254

@jorendumoulin
Copy link
Author

Now open for review!

@jorendumoulin jorendumoulin changed the title docker: use pre-built mlir & cva6 toolchain docker: use pre-built mlir and cva6 toolchain Aug 26, 2024
Copy link

@JosseVanDelm JosseVanDelm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you so much @jorendumoulin !!!

I like this, but can we pin the versions in the llvm-build repo here as well maybe?

@@ -46,6 +45,17 @@ RUN apt-get update && apt-get install -y lsb-release wget software-properties-co
# Enable break-system-packages for non-venv package installs
python3 -m pip config set global.break-system-packages true

# Get prebuilt mlir
# Set the URL for the download
ENV MLIR_URL=https://github.com/KULeuven-MICAS/llvm-build/releases/latest/download/mlir.tar.gz

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we pin the version here instead as well?

ENV MLIR_URL=https://github.com/KULeuven-MICAS/llvm-build/releases/ <version> /download/mlir.tar.gz

Copy link

@rgantonio rgantonio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK! Nice. So we can use CVA6 with this? 😄

@JosseVanDelm
Copy link

@rgantonio from what I understand that is the current goal yes.
Ideally we would use just clang for everything, but @IveanEx has tried this and there were some issues with using the linker scripts and libraries and such (LLD is likely to never link it with the linker scripts of occamy, because it was only tested with GNU LD and it contains some GNU-specific LLVM-wontfix code - https://fosdem.org/2024/events/attachments/fosdem-2024-2340-linker-scripts-in-lld-and-how-they-compare-with-gnu-ld/slides/22752/Fosdem_linker_scripts_2024_uG7XLOI.pdf ).
Completely getting this working would likely require another cowboy effort such as #57
Since we can also just link gcc and clang binaries together, we just have both of them here.

@IveanEx
Copy link

IveanEx commented Aug 27, 2024

When doing some initial attempts on compiling the sw, some weird errors are raised (at linking stage). The simpler software, e.g., bootrom, seems to have no problems. Now @Konste11ation is investigating it, and please do not merge after we solved all the problems.

@IveanEx
Copy link

IveanEx commented Aug 27, 2024

@rgantonio from what I understand that is the current goal yes. Ideally we would use just clang for everything, but @IveanEx has tried this and there were some issues with using the linker scripts and libraries and such (LLD is likely to never link it with the linker scripts of occamy, because it was only tested with GNU LD and it contains some GNU-specific LLVM-wontfix code - https://fosdem.org/2024/events/attachments/fosdem-2024-2340-linker-scripts-in-lld-and-how-they-compare-with-gnu-ld/slides/22752/Fosdem_linker_scripts_2024_uG7XLOI.pdf ). Completely getting this working would likely require another cowboy effort such as #57 Since we can also just link gcc and clang binaries together, we just have both of them here.

Maybe another solution is to establish a new runtime and compilation flow for our system...

Copy link

@IveanEx IveanEx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

HeMAiA test passed! Thanks @Konste11ation !

@IveanEx IveanEx merged commit 66a6fc0 into main Sep 1, 2024
23 checks passed
@IveanEx IveanEx deleted the joren/new-docker branch September 1, 2024 11:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants