Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
2b6c2a4
Fat build compatible with hardware rendering, software rendering, hea…
lcniel Aug 23, 2023
20fa13e
Patch to remove spurious GLEW warning.
lcniel Aug 23, 2023
e51223c
Update sanity check.
lcniel Aug 23, 2023
7db277a
Update easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022a-mp…
lcniel Aug 24, 2023
cfb9b88
changed naming, added xmdf support
lcniel Aug 28, 2023
75da9ae
Delete ParaView-5.11.1-foss-2022a-mpi-egl-osmesa.eb
lcniel Aug 28, 2023
c9dc19c
Add ParaView CUDA 12.2.0 build
lcniel Sep 10, 2023
d6002fc
Add patch for ParaView CUDA 12.2.0
lcniel Sep 10, 2023
543a235
Rename ParaView-5.11.1-foss-2022b-CUDA-12.2.0-egl.eb to ParaView-5.11…
lcniel Sep 10, 2023
b0bf6ca
add missing header
lcniel Sep 10, 2023
372ec82
Update ParaView-5.11.1-remove_glew_init_warning.patch
lcniel Sep 10, 2023
1d7eded
remove egl suffix
lcniel Sep 10, 2023
56155ce
update checksum in paraview-5.11.1-foss-2022b
lcniel Sep 10, 2023
65239d4
add checksums in ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb
lcniel Sep 10, 2023
e084634
fix overlong line in ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb
lcniel Sep 10, 2023
e685704
fix patch checksum ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb
lcniel Sep 10, 2023
9bdd60b
fix checksum in ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb again
lcniel Sep 10, 2023
ff15ce9
Update ParaView-5.11.1-remove_glew_init_warning.patch
lcniel Sep 11, 2023
28981cd
update checksum after fixing apparent issue in patch in ParaView-5.11…
lcniel Sep 11, 2023
044831f
Update ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb
lcniel Sep 11, 2023
7a1088d
fix dcmake cuda arch parameter
lcniel Sep 27, 2023
917c92d
fix configopts formatting
lcniel Sep 27, 2023
ad6ce02
fix configopts formatting
lcniel Sep 27, 2023
687bf19
Update ParaView-5.11.1-foss-2022b.eb
lcniel Sep 27, 2023
462c7c6
Update ParaView-5.11.1-foss-2022b-CUDA-12.2.0.eb
lcniel Sep 28, 2023
7398162
Update ParaView-5.11.1-foss-2022b.eb
lcniel Sep 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
From 5d0481342a877c7297df4726a06cd4f45ea7af25 Mon Sep 17 00:00:00 2001
From: Sujin Philip <sujin.philip@kitware.com>
Date: Mon, 9 Jan 2023 12:58:33 -0500
Subject: [PATCH] Fix compile issues when using cuda 12

CUDA 12 adds a `cub::Swap` function that creates ambiguity with `vtkm::Swap`.
This happens when a function from the `cub` namespace is called with an object
of a class defined in the `vtkm` namespace as an argument. If that function
has an unqualified call to `Swap`, it results in ADL being used, causing the
templated functions `cub::Swap` and `vtkm::Swap` to conflict.
---
vtkm/Swap.h | 24 ++++++++++++++++-------
vtkm/exec/cuda/internal/ExecutionPolicy.h | 1 +
2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/vtkm/Swap.h b/vtkm/Swap.h
index f833a495c5..342c5a20c9 100644
--- a/vtkm/Swap.h
+++ b/vtkm/Swap.h
@@ -24,21 +24,31 @@ namespace vtkm

/// Performs a swap operation. Safe to call from cuda code.
#if defined(VTKM_CUDA)
+// CUDA 12 adds a `cub::Swap` function that creates ambiguity with `vtkm::Swap`.
+// This happens when a function from the `cub` namespace is called with an object of a class
+// defined in the `vtkm` namespace as an argument. If that function has an unqualified call to
+// `Swap`, it results in ADL being used, causing the templated functions `cub::Swap` and
+// `vtkm::Swap` to conflict.
+#if defined(VTKM_CUDA_VERSION_MAJOR) && (VTKM_CUDA_VERSION_MAJOR >= 12) && \
+ defined(VTKM_CUDA_DEVICE_PASS)
+using cub::Swap;
+#else
template <typename T>
-VTKM_EXEC_CONT void Swap(T& a, T& b)
+VTKM_EXEC_CONT inline void Swap(T& a, T& b)
{
- using namespace thrust;
+ using thrust::swap;
swap(a, b);
}
+#endif
#elif defined(VTKM_HIP)
template <typename T>
-__host__ void Swap(T& a, T& b)
+__host__ inline void Swap(T& a, T& b)
{
- using namespace std;
+ using std::swap;
swap(a, b);
}
template <typename T>
-__device__ void Swap(T& a, T& b)
+__device__ inline void Swap(T& a, T& b)
{
T temp = a;
a = b;
@@ -46,9 +56,9 @@ __device__ void Swap(T& a, T& b)
}
#else
template <typename T>
-VTKM_EXEC_CONT void Swap(T& a, T& b)
+VTKM_EXEC_CONT inline void Swap(T& a, T& b)
{
- using namespace std;
+ using std::swap;
swap(a, b);
}
#endif
diff --git a/vtkm/exec/cuda/internal/ExecutionPolicy.h b/vtkm/exec/cuda/internal/ExecutionPolicy.h
index 4db1edc6f9..02cad4ab6d 100644
--- a/vtkm/exec/cuda/internal/ExecutionPolicy.h
+++ b/vtkm/exec/cuda/internal/ExecutionPolicy.h
@@ -17,6 +17,7 @@
#include <vtkm/exec/cuda/internal/ThrustPatches.h>
VTKM_THIRDPARTY_PRE_INCLUDE
#include <thrust/execution_policy.h>
+#include <thrust/sort.h>
#include <thrust/system/cuda/execution_policy.h>
#include <thrust/system/cuda/memory.h>
VTKM_THIRDPARTY_POST_INCLUDE
--
GitLab

Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
easyblock = 'CMakeMake'

name = 'ParaView'
version = '5.11.1'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://www.paraview.org'
description = "ParaView is a scientific parallel visualizer."

toolchain = {'name': 'foss', 'version': '2022b'}
toolchainopts = {'pic': True, 'usempi': True}

local_download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile='
source_urls = ['https://www.paraview.org/paraview-downloads/%s' % local_download_suffix]
sources = ["%(name)s-v%(version)s.tar.gz"]
patches = ['ParaView-5.11.1-remove_glew_init_warning.patch',
('ParaView-5.11.1-fix_thrust_vtk_m.patch', 'VTK/ThirdParty/vtkm/vtkvtkm/vtk-m/')]
checksums = [
{'ParaView-v5.11.1.tar.gz': 'de32f3e576b5f639ffc6903aa9e4cd46ac30c753185edc4366a7f305a6951b16'},
{'ParaView-5.11.1-remove_glew_init_warning.patch':
'dd86134f3a5b2c1b834224c69665dd31f99ef7d367688fe77dbaada212758710'},
{'ParaView-5.11.1-fix_thrust_vtk_m.patch':
'cb4a0dacf1fe2ddefa68ea6f6a061e6cb7d21717053a6514679f9ed73a52525f'},
]

builddependencies = [('CMake', '3.24.3')]

dependencies = [
('CUDA', '12.2.0', '', SYSTEM),
('OptiX', '7.2.0', '', SYSTEM),
('Boost', '1.81.0'),
('Python', '3.10.8'),
('SciPy-bundle', '2023.02'),
('XZ', '5.2.7'),
('HDF5', '1.14.0'),
('netCDF', '4.9.0'),
('libdrm', '2.4.114'),
('Mesa', '22.2.4'),
('Qt5', '5.15.7'),
('zlib', '1.2.12'),
('FFmpeg', '5.1.2'),
('Szip', '2.1.1'),
]

_copts = [
# Basic configuration
'-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON'
'-DPARAVIEW_BUILD_SHARED_LIBS=ON',
'-DPARAVIEW_USE_MPI=ON',
'-DPARAVIEW_ENABLE_FFMPEG=ON',
'-DPARAVIEW_USE_PYTHON=ON',
# CUDA (Vtk-m)
'-DPARAVIEW_USE_CUDA=ON',
'-DPython3_ROOT_DIR=$EBROOTPYTHON',
'-DCMAKE_CUDA_ARCHITECTURES="%(cuda_cc_cmake)s"',
# Hardware but not software raytracing support
'-DPARAVIEW_ENABLE_RAYTRACING=ON',
'-DVTK_ENABLE_OSPRAY=OFF',
'-DVTK_ENABLE_OPTIX=ON',
# Useful input formats
'-DPARAVIEW_ENABLE_XDMF2=ON',
'-DPARAVIEW_ENABLE_XDMF3=ON',
# EGL, X and Mesa
'-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include',
'-DEGL_INCLUDE_DIR=$EBROOTLIBGLVND/include',
'-DEGL_LIBRARY=$EBROOTLIBGLVND/lib/libEGL.%s' % SHLIB_EXT,
'-DEGL_opengl_LIBRARY=$EBROOTLIBGLVND/libOpenGL.%s' % SHLIB_EXT,
'-DVTK_OPENGL_HAS_EGL=ON',
'-DVTK_USE_X=ON',
'-DVTK_OPENGL_HAS_OSMESA=OFF']
configopts = ' '.join(_copts)

sanity_check_paths = {
'files': ['bin/paraview', 'bin/pvserver', 'bin/pvpython'],
'dirs': ['include/paraview-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'],
}

sanity_check_commands = ['python -c "import paraview"']

modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}

moduleclass = 'vis'
71 changes: 71 additions & 0 deletions easybuild/easyconfigs/p/ParaView/ParaView-5.11.1-foss-2022b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
easyblock = 'CMakeMake'

name = 'ParaView'
version = '5.11.1'
versionsuffix = ''

homepage = 'https://www.paraview.org'
description = "ParaView is a scientific parallel visualizer."

toolchain = {'name': 'foss', 'version': '2022b'}
toolchainopts = {'pic': True, 'usempi': True}

local_download_suffix = 'download.php?submit=Download&version=v%(version_major_minor)s&type=source&os=all&downloadFile='
source_urls = ['https://www.paraview.org/paraview-downloads/%s' % local_download_suffix]
sources = ["%(name)s-v%(version)s.tar.gz"]
patches = ['ParaView-5.11.1-remove_glew_init_warning.patch']
checksums = [
{'ParaView-v5.11.1.tar.gz': 'de32f3e576b5f639ffc6903aa9e4cd46ac30c753185edc4366a7f305a6951b16'},
{'ParaView-5.11.1-remove_glew_init_warning.patch':
'dd86134f3a5b2c1b834224c69665dd31f99ef7d367688fe77dbaada212758710'},
]

builddependencies = [('CMake', '3.24.3')]

dependencies = [
('Python', '3.10.8'),
('SciPy-bundle', '2023.02'),
('Boost', '1.81.0'),
('XZ', '5.2.7'),
('HDF5', '1.14.0'),
('netCDF', '4.9.0'),
('libdrm', '2.4.114'),
('Mesa', '22.2.4'),
('Qt5', '5.15.7'),
('zlib', '1.2.12'),
('FFmpeg', '5.1.2'),
('Szip', '2.1.1'),
]

_copts = [
# Basic configuration
'-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON',
'-DPARAVIEW_BUILD_SHARED_LIBS=ON',
'-DPARAVIEW_USE_MPI=ON',
'-DPARAVIEW_ENABLE_FFMPEG=ON',
'-DPARAVIEW_USE_PYTHON=ON',
'-DPython3_ROOT_DIR=$EBROOTPYTHON',
# Useful input formats
'-DPARAVIEW_ENABLE_XDMF2=ON',
'-DPARAVIEW_ENABLE_XDMF3=ON',
# EGL, X and Mesa
'-DOPENGL_glu_LIBRARY=$EBROOTLIBGLU/lib/libGLU.%s' % SHLIB_EXT,
'-DOPENGL_INCLUDE_DIR=$EBROOTMESA/include',
'-DEGL_INCLUDE_DIR=$EBROOTLIBGLVND/include',
'-DEGL_LIBRARY=$EBROOTLIBGLVND/lib/libEGL.%s' % SHLIB_EXT,
'-DEGL_opengl_LIBRARY=$EBROOTLIBGLVND/libOpenGL.%s' % SHLIB_EXT,
'-DVTK_OPENGL_HAS_EGL=ON',
'-DVTK_USE_X=ON',
'-DVTK_OPENGL_HAS_OSMESA=OFF']
configopts = ' '.join(_copts)

sanity_check_paths = {
'files': ['bin/paraview', 'bin/pvserver', 'bin/pvpython'],
'dirs': ['include/paraview-%(version_major_minor)s', 'lib/python%(pyshortver)s/site-packages'],
}

sanity_check_commands = ['python -c "import paraview"']

modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}

moduleclass = 'vis'
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
This patch silences a spurious warning that occurs when running the GUI under VirtualGL
with EGL enabled.
---
--- VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx.orig 2023-08-23 16:35:23.418470811 +0200
+++ VTK/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx 2023-08-23 16:36:10.830654656 +0200
@@ -471,8 +471,8 @@
this->GlewInitValid = (result == GLEW_OK);
if (!this->GlewInitValid)
{
- const char* errorMsg = reinterpret_cast<const char*>(glewGetErrorString(result));
- vtkErrorMacro("GLEW could not be initialized: " << errorMsg);
+ //const char* errorMsg = reinterpret_cast<const char*>(glewGetErrorString(result));
+ //vtkErrorMacro("GLEW could not be initialized: " << errorMsg);
return;
}