Add glim - #33137
Conversation
|
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipes/glim/recipe.yaml:
This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/25019821164. Examine the logs at this URL for more detail. |
|
CPU and CUDA12 / CUDA13 builds work on Linux 🚀 |
|
Hi! This is the friendly automated conda-forge-linting service. I just wanted to let you know that I linted all conda-recipes in your PR ( |
|
The Currently |
|
Unvendored nlhomann json and removed |
|
@conda-forge/help-c-cpp, ready for review! |
|
I ran into a few issues after switching I suspect this should be resolved by marking builds 0, 1, and 2 as broken, but that is not a fast process. For now, I added a workaround in 93e163a that can likely be removed after the next release of |
|
@conda-forge/help-c-cpp, ready for review! |
|
Tagging also @traversaro explicitly since the recipe structure is the same of #33149 that he reviewed recently. |
| - spdlog | ||
| - tbb-devel | ||
| - if: target_platform == "linux-aarch64" | ||
| then: libopencv <4.12 |
There was a problem hiding this comment.
I don't remember :) Maybe in early local attempts it was failing on linux-aarch64. I can remove it for now since CI is not testing this architecture. I can try again when I will enable it in the feedstock.
Can you explain more the relation of the cuda and cpu version of glim and gtsam-points? If the cuda version need each other, I think what you implemented is not a workaround, it is the correct solution (even if brittle as we use build string regex, at least until we have flags github.com/conda/ceps/pull/111). For an example of this, see https://github.com/conda-forge/torchcodec-feedstock/blob/dcbb6b57b6b7f96786fee7a6f1be8a6d2ce70312/recipe/recipe.yaml#L109 . |
|
A few linux distros (mostly arch based) use glim as a package name for a different package, see https://repology.org/projects/?search=glim and https://github.com/junkdog/glim . Perhaps we can use a less ambiguous name? If we can't fine one, I think we can go for glim, at least the star count is in favour of https://github.com/koide3/glim . |
It felt a bit hacky to me, mainly because I'm still getting familiar with best practices for CUDA builds. My expectation is that, after the recent changes in
Given the popularity of the glim in this PR compared with the other project, and considering that we are not talking about debian-based distros (even if my roots are in arch linux xD), I would be ok proceeding with this name. That said, I do not have strong opinions on naming, so I am happy to consider alternatives. |
The problem is: how can the solver know what the "correct" variant is? If you just list |
f11b4d2 to
6f2d12f
Compare
My intuition is that it may still be possible to avoid relying on build strings here. I will try to explain my reasoning in case I am overlooking something. The If the host provides Given that, my expectation is:
What am I missing? |
|
The problem is that in this case the fact that the "right" gtsam-points is installed is just a lucky combination, not something robust. In particular, what happens if it turns out that the CUDA build of the latest version has some critical bug and is marked as broken, while the CPU version is not marked as broken? In that case, the CPU version starts being installed by default. This is not something theoretical, it is literally what happened with jax/jaxlib in the past. In a nutshell, having an higher priority for cuda builds is just a nice convenience for users, not something you can rely on 100% of the time. If you want to be 100% sure that the right variant is installed, you need to let know to the solver which variant you need. |
In that case, while uncommon, I agree that the CPU version could end up being installed in CUDA environments. I would also expect that, in most situations, a new build would be published quickly. However, that would only address issues in the latest release, not in older ones. That said, this concern applies mainly to recipes. In my environments (pixi.toml), I usually pin CUDA builds whenever I know I want them. Thanks for the discussion. It helped me think more deeply about the overall system. |
This PR adds https://github.com/koide3/glim, a versatile and extensible point cloud-based 3D localization and mapping framework.
Checklist
url) rather than a repo (e.g.git_url) is used in your recipe (see here for more details).