Skip to content

bring back easyblock for ipp and update it for EasyBuild 5.0+#3890

Merged
boegel merged 8 commits intoeasybuilders:developfrom
Thyre:20250817093201_new_pr_ipp
Aug 18, 2025
Merged

bring back easyblock for ipp and update it for EasyBuild 5.0+#3890
boegel merged 8 commits intoeasybuilders:developfrom
Thyre:20250817093201_new_pr_ipp

Conversation

@Thyre
Copy link
Copy Markdown
Collaborator

@Thyre Thyre commented Aug 17, 2025

(created using eb --new-pr)

Re-add ipp easyblock for new ipp versions. Since we moved from make_module_req_guess to module_load_environment, use that instead.

I also removed all the old version related stuff, and set the minimum allowed version to 2021.x.x. Based on the EasyConfigs at JSC, this should catch all ipp versions not requiring a license, while having a similar install structure.

I'll do some testing for that...

@Thyre Thyre changed the title new easyblock for ipp bring back easyblock for ipp and update it for EasyBuild 5.0+ Aug 17, 2025
@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Aug 17, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • SUCCESS ipp-2021.5.1.eb
  • SUCCESS ipp-2021.7.0.eb
  • SUCCESS ipp-2021.9.0.eb
  • SUCCESS ipp-2022.0.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [Radeon RX 9070/9070 XT/9070 GRE] (device id: 0x7550, gfx: gfx1201, driver: 6.15.9-arch1-1), 1 x AMD Raphael (device id: 0x164e, gfx: gfx1036, driver: 6.15.9-arch1-1), Python 3.13.7
See https://gist.github.com/Thyre/58f895d27a2b2f857d0d9078ecdd0469 for a full test report.

@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Aug 17, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • SUCCESS ipp-2021.5.1.eb
  • SUCCESS ipp-2021.7.0.eb
  • SUCCESS ipp-2021.9.0.eb
  • SUCCESS ipp-2022.0.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [Radeon RX 9070/9070 XT/9070 GRE] (device id: 0x7550, gfx: gfx1201, driver: 6.15.9-arch1-1), 1 x AMD Raphael (device id: 0x164e, gfx: gfx1036, driver: 6.15.9-arch1-1), Python 3.13.7
See https://gist.github.com/Thyre/dd66af880ccb032292b90247c19639ca for a full test report.

@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Aug 17, 2025

--module-only build:

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • SUCCESS ipp-2021.5.1.eb
  • SUCCESS ipp-2021.7.0.eb
  • SUCCESS ipp-2021.9.0.eb
  • SUCCESS ipp-2022.0.0.eb

Build succeeded for 4 out of 4 (4 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [Radeon RX 9070/9070 XT/9070 GRE] (device id: 0x7550, gfx: gfx1201, driver: 6.15.9-arch1-1), 1 x AMD Raphael (device id: 0x164e, gfx: gfx1036, driver: 6.15.9-arch1-1), Python 3.13.7
See https://gist.github.com/Thyre/b3b301ed6b1b8f07cdf3bf3bec8e38aa for a full test report.

@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Aug 17, 2025

Modules for old versions look sane now:

$ cat /tmp/modules/all/Core/ipp/2021.5.1.lua
help([==[

Description
===========
Intel Integrated Performance Primitives (Intel IPP) is an extensive library
 of multicore-ready, highly optimized software functions for multimedia, data processing,
 and communications applications. Intel IPP offers thousands of optimized functions
 covering frequently used fundamental algorithms.


More information
================
 - Homepage: https://software.intel.com/en-us/articles/intel-ipp/
]==])

whatis([==[Description: Intel Integrated Performance Primitives (Intel IPP) is an extensive library
 of multicore-ready, highly optimized software functions for multimedia, data processing,
 and communications applications. Intel IPP offers thousands of optimized functions
 covering frequently used fundamental algorithms.]==])
whatis([==[Homepage: https://software.intel.com/en-us/articles/intel-ipp/]==])
whatis([==[URL: https://software.intel.com/en-us/articles/intel-ipp/]==])

local root = "/tmp/software/ipp/2021.5.1"

conflict("ipp")

prepend_path("CMAKE_MODULE_PATH", pathJoin(root, "ipp", "2021.5.1", "lib", "cmake"))
prepend_path("CMAKE_PREFIX_PATH", pathJoin(root, "ipp", "2021.5.1"))
prepend_path("CPATH", pathJoin(root, "ipp", "2021.5.1", "include"))
prepend_path("LD_LIBRARY_PATH", pathJoin(root, "ipp", "2021.5.1", "lib", "intel64"))
prepend_path("LIBRARY_PATH", pathJoin(root, "ipp", "2021.5.1", "lib", "intel64"))
setenv("EBROOTIPP", root)
setenv("EBVERSIONIPP", "2021.5.1")
setenv("EBDEVELIPP", pathJoin(root, "easybuild", "Core-ipp-2021.5.1-easybuild-devel"))

setenv("IPPROOT", "/tmp/software/ipp/2021.5.1/ipp/2021.5")
setenv("IPP_TARGET_ARCH", "intel64")
-- Built with EasyBuild version 5.1.2.dev0

For newer ones, they don't yet...

$ cat /tmp/modules/all/Core/ipp/2022.0.0.lua
help([==[

Description
===========
Intel Integrated Performance Primitives (Intel IPP) is an extensive library
 of multicore-ready, highly optimized software functions for multimedia, data processing,
 and communications applications. Intel IPP offers thousands of optimized functions
 covering frequently used fundamental algorithms.


More information
================
 - Homepage: https://software.intel.com/en-us/articles/intel-ipp/
]==])

whatis([==[Description: Intel Integrated Performance Primitives (Intel IPP) is an extensive library
 of multicore-ready, highly optimized software functions for multimedia, data processing,
 and communications applications. Intel IPP offers thousands of optimized functions
 covering frequently used fundamental algorithms.]==])
whatis([==[Homepage: https://software.intel.com/en-us/articles/intel-ipp/]==])
whatis([==[URL: https://software.intel.com/en-us/articles/intel-ipp/]==])

local root = "/tmp/software/ipp/2022.0.0"

conflict("ipp")

setenv("EBROOTIPP", root)
setenv("EBVERSIONIPP", "2022.0.0")
setenv("EBDEVELIPP", pathJoin(root, "easybuild", "Core-ipp-2022.0.0-easybuild-devel"))

setenv("IPPROOT", "/tmp/software/ipp/2022.0.0/ipp/2022.0")
setenv("IPP_TARGET_ARCH", "intel64")
-- Built with EasyBuild version 5.1.2.dev0

@Thyre
Copy link
Copy Markdown
Collaborator Author

Thyre commented Aug 17, 2025

Test report by @Thyre

Overview of tested easyconfigs (in order)

  • SUCCESS ipp-2022.0.0.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
Linux - Linux Arch Linux UNKNOWN, x86_64, AMD Ryzen 7 7800X3D 8-Core Processor, 1 x AMD Navi 48 [Radeon RX 9070/9070 XT/9070 GRE] (device id: 0x7550, gfx: gfx1201, driver: 6.15.9-arch1-1), 1 x AMD Raphael (device id: 0x164e, gfx: gfx1036, driver: 6.15.9-arch1-1), Python 3.13.7
See https://gist.github.com/Thyre/911ded18cf9c5c0254211154164d1109 for a full test report.


This is better:

== comparing module file with backup /tmp/modules/all/Core/ipp/2022.0.0.bak_20250817102301_76563; diff is:
--- /tmp/modules/all/Core/ipp/2022.0.0.bak_20250817102301_76563
+++ /tmp/modules/all/Core/ipp/2022.0.0.lua
@@ -24,6 +24,11 @@

 conflict("ipp")

+prepend_path("CMAKE_MODULE_PATH", pathJoin(root, "ipp", "2022.0", "lib", "cmake"))
+prepend_path("CMAKE_PREFIX_PATH", pathJoin(root, "ipp", "2022.0"))
+prepend_path("CPATH", pathJoin(root, "ipp", "2022.0", "include"))
+prepend_path("LD_LIBRARY_PATH", pathJoin(root, "ipp", "2022.0", "lib"))
+prepend_path("LIBRARY_PATH", pathJoin(root, "ipp", "2022.0", "lib"))
 setenv("EBROOTIPP", root)
 setenv("EBVERSIONIPP", "2022.0.0")
 setenv("EBDEVELIPP", pathJoin(root, "easybuild", "Core-ipp-2022.0.0-easybuild-devel"))

== ... (took < 1 sec)

Copy link
Copy Markdown
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@boegel boegel merged commit e271f98 into easybuilders:develop Aug 18, 2025
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants