Hi Folks, I've a question about where to fix a problem I'm having building Open MPI master and its embedded hwloc2a on a cluster we have that sports Nvidia GPUs.
Here's the problem, I want for Open MPI to be smart about cuda, so I try to configure with: ./configure --prefix=/usr/projects/hpctools/hpp/ompi/install --with-cuda=/opt/cudatoolkit/8.0 Well that doesn't work because of a hwloc thingy: --- MCA component hwloc:hwloc2a (m4 configuration macro, priority 90) checking for MCA component hwloc:hwloc2a compile mode... static checking for hwloc --enable-cuda value... "yes" checking hwloc building mode... embedded configure: hwloc builddir: /usr/projects/hpctools/hpp/ompi/opal/mca/hwloc/hwloc2a/hwloc configure: hwloc srcdir: /usr/projects/hpctools/hpp/ompi/opal/mca/hwloc/hwloc2a/hwloc checking for hwloc version... shmem-20170815.1857.git2478ce8 checking if want hwloc maintainer support... disabled (embedded mode) checking for hwloc directory prefix... opal/mca/hwloc/hwloc2a/hwloc/ checking for hwloc symbol prefix... opal_hwloc2a_ checking size of void *... (cached) 8 checking which OS support to include... Linux checking which CPU support to include... x86_64 checking size of unsigned long... 8 checking size of unsigned int... 4 checking for the C compiler vendor... gnu checking for __attribute__... yes checking for __attribute__(aligned)... yes checking for __attribute__(always_inline)... yes checking for __attribute__(cold)... yes checking for __attribute__(const)... yes checking for __attribute__(deprecated)... yes checking for __attribute__(format)... yes checking for __attribute__(hot)... yes checking for __attribute__(malloc)... yes checking for __attribute__(may_alias)... yes checking for __attribute__(no_instrument_function)... yes checking for __attribute__(nonnull)... yes checking for __attribute__(noreturn)... yes checking for __attribute__(packed)... yes checking for __attribute__(pure)... yes checking for __attribute__(sentinel)... yes checking for __attribute__(unused)... yes checking for __attribute__(warn_unused_result)... yes checking for __attribute__(weak_alias)... yes checking if gcc -std=gnu99 supports -fvisibility=hidden... yes checking whether to enable symbol visibility... yes (via -fvisibility=hidden) configure: WARNING: "-fvisibility=hidden" has been added to the hwloc CFLAGS checking whether the C compiler rejects function calls with too many arguments... yes checking whether the C compiler rejects function calls with too few arguments... yes checking for unistd.h... (cached) yes checking for dirent.h... (cached) yes checking for strings.h... (cached) yes checking ctype.h usability... yes checking ctype.h presence... yes checking for ctype.h... yes checking for strncasecmp... yes checking whether strncasecmp is declared... yes checking whether function strncasecmp has a complete prototype... yes checking for strftime... yes checking for setlocale... yes checking for stdint.h... (cached) yes checking for sys/mman.h... (cached) yes checking for KAFFINITY... no checking for PROCESSOR_CACHE_TYPE... no checking for CACHE_DESCRIPTOR... no checking for LOGICAL_PROCESSOR_RELATIONSHIP... no checking for RelationProcessorPackage... no checking for SYSTEM_LOGICAL_PROCESSOR_INFORMATION... no checking for GROUP_AFFINITY... no checking for PROCESSOR_RELATIONSHIP... no checking for NUMA_NODE_RELATIONSHIP... no checking for CACHE_RELATIONSHIP... no checking for PROCESSOR_GROUP_INFO... no checking for GROUP_RELATIONSHIP... no checking for SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX... no checking for PSAPI_WORKING_SET_EX_BLOCK... no checking for PSAPI_WORKING_SET_EX_INFORMATION... no checking for PROCESSOR_NUMBER... no checking for main in -lgdi32... no checking for PostQuitMessage in -luser32... no checking windows.h usability... no checking windows.h presence... no checking for windows.h... no checking sys/lgrp_user.h usability... no checking sys/lgrp_user.h presence... no checking for sys/lgrp_user.h... no checking kstat.h usability... no checking kstat.h presence... no checking for kstat.h... no checking whether fabsf is declared... yes checking for fabsf in -lm... yes checking picl.h usability... no checking picl.h presence... no checking for picl.h... no checking whether _SC_NPROCESSORS_ONLN is declared... yes checking whether _SC_NPROCESSORS_CONF is declared... yes checking whether _SC_NPROC_ONLN is declared... no checking whether _SC_NPROC_CONF is declared... no checking whether _SC_PAGESIZE is declared... yes checking whether _SC_PAGE_SIZE is declared... yes checking whether _SC_LARGE_PAGESIZE is declared... no checking mach/mach_host.h usability... no checking mach/mach_host.h presence... no checking for mach/mach_host.h... no checking mach/mach_init.h usability... no checking mach/mach_init.h presence... no checking for mach/mach_init.h... no checking for sys/param.h... (cached) yes checking for sys/sysctl.h... (cached) yes checking whether CTL_HW is declared... no checking whether HW_NCPU is declared... no checking whether strtoull is declared... yes checking for ssize_t... (cached) yes checking whether snprintf is declared... yes checking whether strcasecmp is declared... yes checking whether _strdup is declared... no checking whether _putenv is declared... no checking whether getprogname is declared... no checking whether getexecname is declared... no checking whether GetModuleFileName is declared... no checking for program_invocation_name... yes checking for __progname... yes checking for pthread_t... yes checking whether sched_setaffinity is declared... yes checking whether function sched_setaffinity has a complete prototype... yes checking for old prototype of sched_setaffinity... no checking for working CPU_SET... yes checking for working CPU_SET_S... yes checking for working syscall with 6 parameters... yes checking for lib... no checking for bash... /bin/sh checking for ffs... yes checking whether ffs is declared... yes checking whether function ffs has a complete prototype... yes checking for ffsl... yes checking whether ffsl is declared... yes checking whether function ffsl has a complete prototype... yes checking for fls... no checking for flsl... no checking for clz... no checking for clzl... no checking for openat... yes checking for malloc.h... (cached) yes checking for getpagesize... yes checking for memalign... yes checking for posix_memalign... (cached) yes checking for sys/utsname.h... (cached) yes checking for uname... yes checking pthread_np.h usability... no checking pthread_np.h presence... no checking for pthread_np.h... no checking whether pthread_setaffinity_np is declared... yes checking whether pthread_getaffinity_np is declared... yes checking for sched_setaffinity... yes checking for sys/cpuset.h... no checking for cpuset_setaffinity... no checking for library containing pthread_getthrds_np... no checking for cpuset_setid... no checking libudev.h usability... yes checking libudev.h presence... yes checking for libudev.h... yes checking for udev_device_new_from_subsystem_sysname in -ludev... yes checking for PCIACCESS... yes checking pciaccess.h usability... yes checking pciaccess.h presence... yes checking for pciaccess.h... yes checking for pci_slot_match_iterator_create... yes checking for final PCIACCESS support... yes checking cuda.h usability... yes checking cuda.h presence... yes checking for cuda.h... yes checking if CUDA_VERSION >= 3020... yes checking for cuInit in -lcuda... yes checking cuda_runtime_api.h usability... yes checking cuda_runtime_api.h presence... yes checking for cuda_runtime_api.h... yes checking if CUDART_VERSION >= 3020... yes checking for cudaGetDeviceProperties in -lcudart... no configure: WARNING: Specified --enable-cuda switch, but could not configure: WARNING: find appropriate support configure: error: Cannot continue I can think of several ways to fix it. Easiest would be to modify the opal/mca/hwloc/hwloc2a/configure.m4 to not set --enable-cuda if --with-cuda is evaluated to something other than yes. Optionally, I could fix the hwloc configury to use a --with-cuda argument rather than an --enable-cuda configury argument. Would such a configury argument change be traumatic for the hwloc community? I think it would be weird to have both an --enable-cuda and a --with-cuda configury argument for hwloc. Third option, wait for the next major release of UCX with built-in cuda support and not worry about this? Thoughs? Howard
_______________________________________________ devel mailing list devel@lists.open-mpi.org https://lists.open-mpi.org/mailman/listinfo/devel