Repository navigation
[Tigre] Initial recipe for libtigre (v3.1.3) - #15370
hashimoto-koh wants to merge 4 commits into
Conversation
lgoettgens
left a comment
There was a problem hiding this comment.
some comments inline. Furthermore, the name kind of confuses me, as a _julia in the name usually hints that the package links against libjulia_jll, but this one doesn't
| sources = [ | ||
| GitSource( | ||
| "https://github.com/CERN/TIGRE.git", | ||
| "81b6be2cc12ee630d36cba941e111ba14ba34c7c", |
| # Support platforms and helpers from Yggdrasil | ||
| if isfile(joinpath(@__DIR__, "../../platforms/cuda.jl")) | ||
| include("../../platforms/cuda.jl") | ||
| else | ||
| include(joinpath(@__DIR__, "platforms/cuda.jl")) | ||
| end |
There was a problem hiding this comment.
| # Support platforms and helpers from Yggdrasil | |
| if isfile(joinpath(@__DIR__, "../../platforms/cuda.jl")) | |
| include("../../platforms/cuda.jl") | |
| else | |
| include(joinpath(@__DIR__, "platforms/cuda.jl")) | |
| end | |
| include("../../platforms/cuda.jl") |
| if [ -d "TIGRE" ]; then | ||
| TIGRE_DIR="TIGRE" | ||
| elif [ -d "Common/CUDA" ]; then | ||
| TIGRE_DIR="." | ||
| else | ||
| TIGRE_DIR=$(find . -maxdepth 2 -iname "tigre*" -type d | head -n 1) | ||
| fi |
There was a problem hiding this comment.
this should not be needed. the location is deterministic
| if [ -d "${prefix}/cuda" ]; then | ||
| CUDA_HOME="${prefix}/cuda" | ||
| elif [ -d "${WORKSPACE}/destdir/cuda" ]; then | ||
| CUDA_HOME="${WORKSPACE}/destdir/cuda" | ||
| else | ||
| CUDA_HOME="/usr/local/cuda" | ||
| fi |
There was a problem hiding this comment.
this should not be needed. everything is deterministic
| if [ -f "LICENSE" ]; then | ||
| install_license "LICENSE" | ||
| fi |
There was a problem hiding this comment.
| if [ -f "LICENSE" ]; then | |
| install_license "LICENSE" | |
| fi | |
| install_license "LICENSE" |
if such a file exists, the build should fail loudly if it suddenly is not there
|
|
||
| # Base platform: Linux x86_64 glibc | ||
| base_platforms = [ | ||
| Platform("x86_64", "linux"; libc = "glibc"), |
There was a problem hiding this comment.
why only this single platform? Usually, you want to start with supported_platforms() and then filter out anything that doesn't work
| plat = deepcopy(p) | ||
| plat["cuda"] = "12.4" | ||
| push!(cuda_platforms, plat) | ||
| end |
There was a problem hiding this comment.
I believe there is something pre-built for this, but I am not too familiar with cuda
| end | ||
|
|
||
| # Non-platform arguments passed to build_tarballs | ||
| non_platform_ARGS = filter(arg -> startswith(arg, "--"), ARGS) |
…UDA.supported_platforms, and rename library to libtigre
|
Thank you very much for the thorough review and helpful guidance, @lgoettgens!
All 12 reconstruction algorithms and 120 regression checks were re-verified on an NVIDIA GeForce RTX 3090 with the newly built |
|
Fixed the Buildkite CI failure in commit d748369:
|
|
Fixed the CUDA 13.x build failures in commit 994cd20:
|
This PR adds the initial recipe for
Tigre_jll, buildinglibtigre.sofor Tigre.jl.9aad4fe623e8e0dbc5fed32958973e1173185ea0, tagv3.1.3)libcudart.so.12) viaCUDA.supported_platforms(; min_version = v"12.0")sm_70,sm_75,sm_80,sm_86,sm_89,sm_90+ PTXcompute_86libtigre.so(pure C ABI bridge exportingtigre_julia_*functions with zero Python/MATLAB/libjulia runtime dependencies)0001-fix-piccs-leak-and-device-reset.patchcarrying upstream-merged bugfixes (CERN/TIGRE PR [ZeroMQ] without debugging information #800: PICCS GPU memory leak fix and avoidance ofcudaDeviceReset).All 12 tomographic reconstruction algorithms (FDK, FBP, SART, FISTA, LSMR, PICCS, MLEM, PCSD, AwPCSD, TV) have been numerically verified with 120 regression checks on an NVIDIA GeForce RTX 3090 GPU:
https://github.com/hashimoto-koh/Builder4Tigre