-
-
Notifications
You must be signed in to change notification settings - Fork 3.4k
chore: Update to Ubuntu24.04 (cont #7423) #7769
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
Conversation
✅ Deploy Preview for localai ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
we have a chicken and egg problem here with the intel image, so I have set it to the upstream image to test building in the CI. |
we might also not need it anymore, it really was a workaround as I was having issues with using directly upstream images |
cc17a26 to
e9741ed
Compare
e9741ed to
994a8e7
Compare
|
Cool, OK, all images managed to build (the current build is blocked by a 503 internal server error). I'm guessing the GGML based backends will all be fine at runtime based on previous testing and the Python ones... maybe less so. Do you want to merge this then scramble to fix the resulting issues? @mudler c.c. @toalex77 |
yup let's pick it up from master and fix remaining issues there |
| else | ||
| curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/arm64/cuda-keyring_1.1-1_all.deb | ||
| fi | ||
| curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/sbsa/cuda-keyring_1.1-1_all.deb |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
any specific reason for this? it looks like a regression
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed this part because this repository https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/arm64/ for Ubuntu 24.04, doesn't contain any of the packages required for the subsequent apt-get installation, but they are available in the sbsa repository.
I then tested the build, and it worked.
Obviously, not having the necessary hardware, I couldn't test the actual functionality of what had been compiled.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, I have both arches (DGX Spark and AGX Orin) so I will be able to test here
| libcublas-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} \ | ||
| libcusparse-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} \ | ||
| libcusolver-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} | ||
| if [ "${CUDA_MAJOR_VERSION}" = "13" ] && [ "arm64" = "$TARGETARCH" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do this work for cuda12?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It appears that these packages exist with CUDA 12. However I am running arm64 locally in QEMU and the build fails later on with what appears to be an error where the x86_64 protoc exe has found its way into the build.
| curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/cuda-keyring_1.1-1_all.deb | ||
| fi | ||
| if [ "arm64" = "$TARGETARCH" ]; then | ||
| if [ "${CUDA_MAJOR_VERSION}" = "13" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto here
| apt-get install -y --no-install-recommends \ | ||
| software-properties-common pciutils | ||
| if [ "amd64" = "$TARGETARCH" ]; then | ||
| echo https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/cuda-keyring_1.1-1_all.deb |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this seems an oversight
| libcublas-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} \ | ||
| libcusparse-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} \ | ||
| libcusolver-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} | ||
| if [ "${CUDA_MAJOR_VERSION}" = "13" ] && [ "arm64" = "$TARGETARCH" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto here
| else | ||
| curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/arm64/cuda-keyring_1.1-1_all.deb | ||
| fi | ||
| curl -O https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/sbsa/cuda-keyring_1.1-1_all.deb |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto here
| libcusparse-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} \ | ||
| libcusolver-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} | ||
| if [ "${CUDA_MAJOR_VERSION}" = "13" ] && [ "arm64" = "$TARGETARCH" ]; then | ||
| if [ "arm64" = "$TARGETARCH" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
| libcusparse-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} \ | ||
| libcusolver-dev-${CUDA_MAJOR_VERSION}-${CUDA_MINOR_VERSION} | ||
| if [ "${CUDA_MAJOR_VERSION}" = "13" ] && [ "arm64" = "$TARGETARCH" ]; then | ||
| if [ "arm64" = "$TARGETARCH" ]; then |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ditto
Dockerfile
Outdated
| RUN wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | \ | ||
| gpg --yes --dearmor --output /usr/share/keyrings/intel-graphics.gpg | ||
| RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy/lts/2350 unified" > /etc/apt/sources.list.d/intel-graphics.list | ||
| RUN echo "deb [arch=amd64 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu noble/lts/2350 unified" > /etc/apt/sources.list.d/intel-graphics.list |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
good catch, this likely would be better to have its own ARG
| COPY python/${BACKEND} /${BACKEND} | ||
| COPY backend.proto /${BACKEND}/backend.proto | ||
| COPY python/common/ /${BACKEND}/common | ||
| COPY backend/python/${BACKEND} /${BACKEND} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mh. this is interesting, some of the Makefile commands where not correctly setting the context path as backend, but here we assume the context now is the whole repository. I tried to avoid this because the main path of LocalAI could likely be in a more dirty state when developing (e.g. model files, etc that then gets dumped in the build context and makes thing slow). any reason to use the . as build context? can we keep it scoped to the backend directory instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we have to or improve the .dockerignore because I seem to be sending 6GB+ to the context during a backend build.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi, I made this change in this commit 9323392 essentially because during the local build tests the Python backends all failed and because, being a different behavior compared to the other backends, I had interpreted it as something to be standardized, but in reality without particular awareness.
So it might be something that needs to be undone and fixed in another way (maybe with some comments explaining why the context is different?).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@toalex77 I see, yes totally should be standardized in one way or another, I tend to prefer isolating the context as much as we can if possible as it hints which files are actually needed (we need only things from the backend directory because there is a common backend.proto, but we don't need anything from the top-level repository)
| include: | ||
| # CUDA 11 builds | ||
| - build-type: 'cublas' | ||
| cuda-major-version: "11" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we drop cuda 11 (which is totally fine) we should also update docs accordingly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like there was a lot more left over than just the docs, so I have removed everything related to CUDA 11. I believe this will remove support for Kepler GPUs (released 2012), although they may still work with Vulkan for GGML based backends.
9385fb1 to
92d8ce8
Compare
|
"HTTP status server error (503 Service Temporarily Unavailable) for url EDIT: 3 times now, this time with sentencepiece package. |
Signed-off-by: Alessandro Sturniolo <[email protected]>
…ible with ubuntu:24.04) Signed-off-by: Alessandro Sturniolo <[email protected]>
…packages Signed-off-by: Alessandro Sturniolo <[email protected]>
… Makefile and Dockerfile Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
…rride Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
…LAS builds Signed-off-by: Alessandro Sturniolo <[email protected]>
…x URL; align hipblas requirements Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
…ilds Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
… on arm64 builds Signed-off-by: Alessandro Sturniolo <[email protected]>
…4.04 compatibility on arm64 Signed-off-by: Alessandro Sturniolo <[email protected]>
… on backend/Dockerfile.python Signed-off-by: Alessandro Sturniolo <[email protected]>
…voice backend Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Alessandro Sturniolo <[email protected]>
Signed-off-by: Richard Palethorpe <[email protected]>
Signed-off-by: Richard Palethorpe <[email protected]>
3d0d4a4 to
4198530
Compare
Signed-off-by: Richard Palethorpe <[email protected]>
|
let's test on master! it's much easier to catch-up from there given our build matrix. I can also help a bit more to test also on both l4t platforms |
Testing fixes to #7423