Repository navigation
Julia energy observers, Python support change and general improvements - #420
fjwillemsen wants to merge 59 commits into
Conversation
…better performance
Adds tests with a kernel that accumulates into its output for the first n elements only. They check that arrays and scalars are passed to and from the kernel correctly with run_kernel, that the user's arguments are not modified, and that output verification works and outputs are reset between configurations. Inputs and answers are tested both as numpy arrays and as Julia arrays. Also checks that a wrong answer fails verification.
…r needed tomli dependency in favor of built-in tomllib
…eristics building
|
Is this ready? :-) I should have some time tomorrow to merge and make a new release. |
|
@benvanwerkhoven yes please! |
|
|
When testing this in a fresh environment, I ran into the issue that the test/test_backend.py::test_julia_backend took more than 10 minutes. Apparently, it downloads all of the CUDA toolkit and compiles everything if it cannot find CUDA.jl. Now it is probably safe to assume for users of Kernel Tuner (whether from Julia or from Python) that they have CUDA installed. I just checked the installation instructions for KernelTuner.jl and it does not mention anything about CUDA.jl being a prerequisite though. You probably also did not intend it to be a prerequisite, if someone is only interested in tuning kernels on their AMD GPU, why would they want to install? Perhaps the CUDA.jl install was only triggered because I have an Nvidia GPU in my system. However, I already have about 20+ installations of the CUDA toolkit on my system because every dependency insists installing all of CUDA on its own, which I find really annoying. So if there is a way to encourage CUDA.jl to first look for a compatible system install of CUDA that would be a preferred solution in my opinion. Otherwise, it seems that the Kernel Tuner Julia backend does not need all of the CUDA toolkit, but only CUDACore. A possible fix would be to change CUDA here to CUDACore: kernel_tuner/backends/julia_helper.py:15: "pkg": "CUDA",. This is the root cause. It names the CUDA.jl meta-package, which brings in cuBLAS, cuFFT, cuSOLVER, cuSPARSE, cuRAND and CUPTI. The backend only needs CUDACore. I do view this issue as noncritical. So if you prefer to have this merged now, because of the upcoming SC tutorial, I'm happy to merge and make a release now, and we can fix this after the tutorial. However, I don't know what environment you intend to use at the tutorial, you probably wouldn't want participants to have to wait for 10+ minutes while CUDA.jl is downloading and installing all of the CUDA toolkit. |



This pull request brings a variety of improvements ahead of a new release for the Julia for HPC tutorial at SuperComputing 2026.
Overview of changes:
np.shufflecrash and wrong return type inSearchspacedistributed random and LHS samplers.This has been extensively tested on Nvidia, AMD, and Metal. All tests pass.