Hi Joachim,
On 11/10/16 11:57, Joachim Hein wrote:
Hi,
We are still struggling to build a CUDA 7.5.18 with EB 2.9.0. It
seems to be failing in the “sanity check”, though the actual nvidia
installer doesn’t give an error and the bin directory looks reasonable
to us. We get a “KeyError: ‘GCC’
Anyone could comment with regards to what went wrong:
-bash-4.2$ eb CUDA-7.5.18.eb
== temporary log file in case of crash /tmp/eb-wjA2JG/easybuild-2WrNil.log
== processing EasyBuild easyconfig
/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_easyconfigs-2.9.0-py2.7.egg/easybuild/easyconfigs/c/CUDA/CUDA-7.5.18.eb
== building and installing Core/CUDA/7.5.18...
== fetching files...
== creating build dir, resetting environment...
== unpacking...
== patching...
== preparing...
== configuring...
== building...
== testing...
== installing...
== taking care of extensions...
== postprocessing...
== sanity checking...
ERROR: Traceback (most recent call last):
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/main.py",
line 115, in build_and_install_software
(ec_res['success'], app_log, err) = build_and_install_one(ec,
init_env)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 2376, in build_and_install_one
result = app.run_all_steps(run_test_cases=run_test_cases)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 2292, in run_all_steps
self.run_step(step_name, step_methods)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 2171, in run_step
step_method(self)()
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_easyblocks-2.9.0-py2.7.egg/easybuild/easyblocks/c/cuda.py",
line 137, in sanity_check_step
super(EB_CUDA, self).sanity_check_step(custom_paths=custom_paths)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 1790, in sanity_check_step
self._sanity_check_step(*args, **kwargs)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 1910, in _sanity_check_step
fake_mod_data = self.load_fake_module(purge=True)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 1183, in load_fake_module
fake_mod_path = self.make_module_step(fake=True)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 1997, in make_module_step
txt += self.make_module_extend_modpath()
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyblock.py",
line 1072, in make_module_extend_modpath
modpath_exts = ActiveMNS().det_modpath_extensions(self.cfg)
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/framework/easyconfig/easyconfig.py",
line 1610, in det_modpath_extensions
modpath_extensions =
self.mns.det_modpath_extensions(self.check_ec_type(ec))
File
"/sw/easybuild/software/Core/EasyBuild/2.9.0/lib/python2.7/site-packages/easybuild_framework-2.9.0-py2.7.egg/easybuild/tools/module_naming_scheme/hierarchical_mns.py",
line 177, in det_modpath_extensions
comp_name_ver = [comp_name, comp_ver_tmpl % comp_versions]
KeyError: 'GCC'
You're running into a known issue, see
https://github.com/hpcugent/easybuild-framework/pull/1753.
Basically, in the current implementation of HierarchicalMNS, installing
CUDA at the 'Core' level is not supported.
You're running into an ugly traceback because of this, while PR #1753 at
least throws a decent error message.
The idea was to enhance this further to also allow CUDA at the 'Core'
level, but then the PR lost attention.
I'm happy to pick this up again and try and fix it...
Let's follow up in the PR?
regards,
Kenneth