tenstorrent / tt-metal

:metal: TT-NN operator library, and TT-Metalium low level kernel programming model.
Apache License 2.0
395 stars 48 forks source link

Ubuntu 22.04/24.04 upgrade #10469

Closed TT-billteng closed 1 day ago

TT-billteng commented 1 month ago

Our recent upgrade to C++20 has required switching to clang-17 + libc++ in order for our code to compile correctly. This isn't great as it's usually a good idea to be compatible with the compiler toolchain native to an OS distro. The toolsets available on Ubuntu 20.04 are too old as we need at least g++12 and beyond, thus forcing the switch to Ubuntu 22.04. Steps in order to make this happen:

marty1885 commented 1 month ago

Is there any reason to not use 24.04? I believe most end users would be on the latest LTS and having CI that makes sure that version runs smoothly would greatly help DX. Even if it's just checking the code compiles.

TT-billteng commented 1 month ago

could do it, but currently can't create native 24.04 instances on our internal cloud

TT-billteng commented 1 month ago

Also, tt-BUDA has 20.04 and 22.04 docker images so I'd like to stay in sync for now

marty1885 commented 1 month ago

Thanks for the explanation, totally understandable. I was hoping TT can move to 24.04 so I wont need spend as much time debugging build issues on the latest GCC. And can more focus on debugging my code.. I'll do my best then.

TT-billteng commented 1 month ago

Thanks for the explanation, totally understandable. I was hoping TT can move to 24.04 so I wont need spend as much time debugging build issues on the latest GCC. And can more focus on debugging my code.. I'll do my best then.

I'll look into adding Ubuntu 24.04 into CI, at least compiling with 24.04's GCC. The main problem we have is that we don't have dedicated builder machines in our internal cloud yet, and we don't want to pay for extra GH runner capacity :|.

marty1885 commented 1 month ago

and we don't want to pay for extra GH runner capacity

That is new to me. I might missed something but AFAIK GH hosted runners on public repositories are completely free. And projects I maintain uses them extensively without paying a dime. tt-metal should be eligible. See About billing for GitHub Actions

Quote:

GitHub Actions usage is free for standard GitHub-hosted runners in public repositories

TT-billteng commented 1 month ago

and we don't want to pay for extra GH runner capacity

That is new to me. I might missed something but AFAIK GH hosted runners on public repositories are completely free. And projects I maintain uses them extensively without paying a dime. tt-metal should be eligible. See About billing for GitHub Actions

Quote:

GitHub Actions usage is free for standard GitHub-hosted runners in public repositories

They are but we get a maximum of 60 instances. We have a lot of people running CI jobs 😓

TT-billteng commented 1 month ago

One of things that could help a lot is device arch independent builds, hopefully will get around to it soon.

marty1885 commented 1 month ago

Ah I see... hope we can get 24.04 some time soon then. I'll keep posting patches in the mean time.

TT-billteng commented 1 month ago

Ah I see... hope we can get 24.04 some time soon then. I'll keep posting patches in the mean time.

We've found a nice method to boost our building capacity + more local builders so this should be possible once our docker workflow infra is in place

TT-billteng commented 1 day ago

closing in favor of https://github.com/tenstorrent/tt-metal/milestone/8