commit:     4f420766f89b541018c5a486dc1766412a2eb4b9
Author:     Thomas Haschka <haschka <AT> gmail <DOT> com>
AuthorDate: Fri Jun 27 08:52:31 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jul 16 14:18:02 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4f420766

sci-chemistry/gromacs: fixing gromacs opencl build for intel internal graphics

Intel integrated GPUs require:
    -DGMX_GPU_NB_CLUSTER_SIZE=4
to be set, otherwise running a GPU job will result in GPU not found.

I added the video_cards_intel use flag, in order to check if we build gromacs
for intel integrated graphics. If this is the case GMX_GPU_NB_CLUSTER_SIZE=4
will be set instead of the default 8.

With this patch I get about 3x performance on an Intel Core Ultra 7 256 machine,
utilizing integrated graphics that would be otherwise not found.

Signed-off-by: Thomas Haschka <haschka <AT> gmail.com>
Part-of: https://github.com/gentoo/gentoo/pull/42774
Closes: https://github.com/gentoo/gentoo/pull/42774
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sci-chemistry/gromacs/gromacs-2025.2.ebuild | 5 ++++-
 sci-chemistry/gromacs/metadata.xml          | 1 +
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/sci-chemistry/gromacs/gromacs-2025.2.ebuild 
b/sci-chemistry/gromacs/gromacs-2025.2.ebuild
index b8f9ffbc8f82..b9fdcc45b09a 100644
--- a/sci-chemistry/gromacs/gromacs-2025.2.ebuild
+++ b/sci-chemistry/gromacs/gromacs-2025.2.ebuild
@@ -40,7 +40,7 @@ HOMEPAGE="https://www.gromacs.org/";
 #        base,    vmd plugins, fftpack from numpy,  blas/lapck from netlib,    
    memtestG80 library,  mpi_thread lib
 LICENSE="LGPL-2.1 UoI-NCSA !mkl? ( !fftw? ( BSD ) !blas? ( BSD ) !lapack? ( 
BSD ) ) cuda? ( LGPL-3 ) threads? ( BSD )"
 SLOT="0/${PV}"
-IUSE="blas clang clang-cuda cuda  +custom-cflags +doc build-manual 
double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack mkl mpi nnpot 
+offensive opencl openmp +python +single-precision test +threads +tng 
${ACCE_IUSE}"
+IUSE="blas clang clang-cuda cuda +custom-cflags +doc build-manual 
double-precision +fftw +gmxapi +gmxapi-legacy +hwloc lapack mkl mpi nnpot 
+offensive opencl openmp +python +single-precision test +threads +tng 
video_cards_intel ${ACCE_IUSE}"
 
 CDEPEND="
        blas? ( virtual/blas )
@@ -265,9 +265,11 @@ src_configure() {
                local p
                [[ ${x} = "double" ]] && p="-DGMX_DOUBLE=ON" || 
p="-DGMX_DOUBLE=OFF"
                local gpu=( "-DGMX_GPU=OFF" )
+               local gpu_clusters=( "-DGMX_GPU_NB_CLUSTER_SIZE=8" )
                [[ ${x} = "float" ]] && use cuda && gpu=( "-DGMX_GPU=CUDA" )
                [[ ${x} = "float" ]] && use clang-cuda && gpu=( 
"-DGMX_GPU=CUDA" "-DGMX_CLANG_CUDA=ON" )
                use opencl && gpu=( "-DGMX_GPU=OPENCL" )
+               use video_cards_intel && gpu_clusters=( 
"-DGMX_GPU_NB_CLUSTER_SIZE=4" )
                local mycmakeargs=(
                        ${mycmakeargs_pre[@]} ${p}
                        -DGMX_MPI=$(usex mpi)
@@ -275,6 +277,7 @@ src_configure() {
                        -DGMXAPI=$(usex gmxapi)
                        -DGMX_INSTALL_LEGACY_API=$(usex gmxapi-legacy)
                        "${gpu[@]}"
+                       "${gpu_clusters[@]}"
                        "$(use test && echo 
-DREGRESSIONTEST_PATH="${WORKDIR}/${P}_${x}/tests")"
                        -DGMX_BINARY_SUFFIX="${suffix}"
                        -DGMX_LIBS_SUFFIX="${suffix}"

diff --git a/sci-chemistry/gromacs/metadata.xml 
b/sci-chemistry/gromacs/metadata.xml
index c9f06ca19ba2..413a1f93e3dd 100644
--- a/sci-chemistry/gromacs/metadata.xml
+++ b/sci-chemistry/gromacs/metadata.xml
@@ -24,5 +24,6 @@
                <flag name="tng">Enable new trajectory format - tng</flag>
                <flag name="mkl">Use <pkg>sci-libs/mkl</pkg> for fft, blas, 
lapack routines</flag>
                <flag name="offensive">Enable gromacs partly offensive 
quotes</flag>
+               <flag name="video_cards_intel">Modifies the non-bonded GPU 
cluster size to 4 in order to enable opencl on Intel integrated graphics</flag>
        </use>
 </pkgmetadata>

Reply via email to