Hi Damian, On 13/10/16 18:04, Alvarez, Damian wrote:
Well, you can simply put CUDA as a dependency in the OpenMPI easyconfig, right? You don’t really need to have a gcccuda toolchain for it, GCC would work just fine.
Sure, the idea of gcccuda is that EasyBuild can use that as a toolchain; it knows how to use the CUDA compiler, but this never really took off.
Also, as far as I remember, the CUDA installation doesn’t actively check which version of GCC you are using. That is done at compile time via include/host_config.h. Or am I missing something?
OK, I may be mistaken here, I was recalling from memory. K.
Damian On 13/10/16 16:53, "[email protected] on behalf of Kenneth Hoste" <[email protected] on behalf of [email protected]> wrote: On 11/10/16 15:54, Joachim Hein wrote: > Hi Åke and everyone else: > > Many thanks that builds. (Only tried the cuda easy config, not the rest yet). As far as I can see the key difference is, that you package uses a GCC-5.4.0-2.26 toolchain while the standard Cuda 7.5.18 that comes with EB 2.9.0 utilises a dummy toolchain. So I am wondering whether the Cuda modules in EB should be moved to a non-dummy toolchain. > > Our systems gcc is 4.8.5 (CentOS 7). Though there might be an issue with the GPU node (missing package) I am using to build Cuda. Normally I use a different node for EB work. Any comments/suggestions? Well, there's a difference between an OpenMPI built on top of CUDA, or just installing them side-by-side. See for example https://github.com/hpcugent/easybuild-easyconfigs/blob/master/easybuild/easyconfigs/o/OpenMPI/OpenMPI-1.7.3-gcccuda-2.6.10.eb that includes this: configopts += '--with-cuda=$CUDA_HOME ' # CUDA-aware build; N.B. --disable-dlopen is incompatible The OpenMPI easyconfig in https://github.com/hpcugent/easybuild-easyconfigs/pull/3666 also includes this. Whether you're installing CUDA on top of a GCC or not doesn't really matter though, since it's a binary installation. The only advantage (I can think of) is that the CUDA installer checks the GCC version being used. If you install CUDA with a dummy toolchain, it'll check the version of the system GCC, after which you'll sneakily combine that CUDA installation with a different GCC provided via EasyBuild. regards, Kenneth > > Best wishes > Joachim > > > >> On 11 Oct 2016, at 14:19, Åke Sandgren <[email protected]> wrote: >> >> It's easyconfig PR 3666 >> >> On 10/11/2016 12:34 PM, Joachim Hein wrote: >>> Hi Åke, >>> >>> Thanks for your reply. For that you must have created a cuda 8.0.44 configuration file. Could you share that in some way (or is it in github in some place)? >>> >>> Best wishes >>> Joachim >>> >>> >>>> On 11 Oct 2016, at 12:21, Åke Sandgren <[email protected]> wrote: >>>> >>>> No clue on the 7.5.18, but i've just made a goolfc toolchain based on >>>> cuda 8.0.44, gcc 5.4.0 (they still don't support any newer version of >>>> gcc) and the latest fftw/scalapack/openblas >>>> >>>> That one seemed to build at least, haven't had time to test it. >>>> >>>> On 10/11/2016 11:57 AM, 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' >>>>> >>>>> Thanks >>>>> Joachim >>>>> >>>>> >>>> -- >>>> Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden >>>> Internet: [email protected] Phone: +46 90 7866134 Fax: +46 90-580 14 >>>> Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se >> -- >> Ake Sandgren, HPC2N, Umea University, S-90187 Umea, Sweden >> Internet: [email protected] Phone: +46 90 7866134 Fax: +46 90-580 14 >> Mobile: +46 70 7716134 WWW: http://www.hpc2n.umu.se ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------

