Chapter 4.2 : Compilation
Commençons par appeler CMake (dans un dossier build) :
cmake .. -- The C compiler identification is GNU 9.3.0 -- The CXX compiler identification is GNU 9.3.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- HDF5: Using hdf5 compiler wrapper to determine C configuration -- HDF5: Using hdf5 compiler wrapper to determine CXX configuration -- Found HDF5: /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so;/usr/lib/x86_64-linux-gnu/libpthread.so; /usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so; /usr/lib/x86_64-linux-gnu/libm.so (found version "1.10.4") found components: C CXX -- HDF5_CXX_LIBRARIES = /usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5_cpp.so;/usr/lib/x86_64-linux-gnu/hdf5/serial/libhdf5.so; /usr/lib/x86_64-linux-gnu/libpthread.so;/usr/lib/x86_64-linux-gnu/libsz.so;/usr/lib/x86_64-linux-gnu/libz.so; /usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so -- Program GRAY_SCOTT_GPU_CUDA version 1.0.0 -- SELF_TESTS_MODE = yes -- Found STRINGUTILS headers : /home/pierre/usr/include/StringUtils -- Found lib STRINGUTILS : /home/pierre/usr/lib -- Found OPTIONPARSER headers : /home/pierre/usr/include/OptionParser -- Found lib OPTIONPARSER : /home/pierre/usr/lib -- Found DATASTREAM headers : /home/pierre/usr/include/DataStream -- Found lib DATASTREAM : /home/pierre/usr/lib -- Found TENSORALLOC headers : /home/pierre/usr/include/TensorAlloc -- Found lib TENSORALLOC : /home/pierre/usr/lib -- Found PHOENIXPNG headers : /home/pierre/usr/include/PhoenixPNG -- Found lib PHOENIXPNG : /home/pierre/usr/lib -- Automatic searching for architecture flags -- Get LINUX extensions -- Find SSSE3 -- Find SSE4 -- Find AVX -- Find AVX2 -- tmp FLAG_VECTORIZED_COMPILATION = -mavx2 -- global PHOENIX_FLAG_VECTORIZED_COMPILATION = -mavx2 -- Automatic searching for architecture flags -- Get LINUX extensions -- Find SSSE3 -- Find SSE4 -- Find AVX -- Find AVX2 -- CMAKE_VERSION = 3.16.3, MODE_NUNBER = '5' -- CPU_MODEL_NAME = Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz -- CPU_SIBLINGS = 8 -- NB_CORE = 4 -- CACHE_L1_DATA = 32768 B -- CACHE_L1_INSTRUCTION = 32768 B -- CACHE_L2 = 262144 B -- CACHE_L3 = 8388608 B -- ENDIANESS = LittleEndian -- Looking for pthread.h -- Looking for pthread.h - found -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found CUDA: /usr/local/cuda (found version "11.2") -- Found headers CUDA : /usr/local/cuda/include -- Found lib CUDA : /usr/local/cuda/lib64/libcudart_static.a;-lpthread;dl;/usr/lib/x86_64-linux-gnu/librt.so -- Configuring done -- Generating done -- Build files have been written to: XXX/GrayScottGpuCuda/build
Cela permet de vérifier que le système est installé correctement.
Puis Make :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
make Scanning dependencies of target asterics_hpc_cuda [ 6%] Building CXX object AstericsHPC/CMakeFiles/asterics_hpc_cuda.dir/asterics_alloc.cpp.o [ 12%] Building CXX object AstericsHPC/CMakeFiles/asterics_hpc_cuda.dir/timer.cpp.o [ 18%] Building CXX object AstericsHPC/CMakeFiles/asterics_hpc_cuda.dir/asterics_cuda.cpp.o [ 25%] Building C object AstericsHPC/CMakeFiles/asterics_hpc_cuda.dir/phoenix_cuda_check.c.o [ 31%] Linking CXX shared library libasterics_hpc_cuda.so [ 31%] Built target asterics_hpc_cuda Scanning dependencies of target gray_scott_data_format [ 37%] Building CXX object DataFormat/CMakeFiles/gray_scott_data_format.dir/MatrixHdf5.cpp.o [ 43%] Building CXX object DataFormat/CMakeFiles/gray_scott_data_format.dir/temporary_alloc.cpp.o [ 50%] Linking CXX shared library libgray_scott_data_format.so [ 50%] Built target gray_scott_data_format [ 56%] Building NVCC (Device) object src/CMakeFiles/gray_scott_cuda.dir/gray_scott_cuda_generated_gray_scott_cuda.cu.o nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning). Scanning dependencies of target gray_scott_cuda [ 62%] Linking CXX shared library libgray_scott_cuda.so [ 62%] Built target gray_scott_cuda Scanning dependencies of target gray_scott_gpu_cuda_stupid [ 68%] Building CXX object program/CMakeFiles/gray_scott_gpu_cuda_stupid.dir/main_stupid.cpp.o [ 75%] Linking CXX executable gray_scott_gpu_cuda_stupid [ 75%] Built target gray_scott_gpu_cuda_stupid Scanning dependencies of target gray_scott_gpu_cuda [ 81%] Building CXX object program/CMakeFiles/gray_scott_gpu_cuda.dir/main.cpp.o [ 87%] Linking CXX executable gray_scott_gpu_cuda [ 87%] Built target gray_scott_gpu_cuda Scanning dependencies of target gray_scott2pic [ 93%] Building CXX object program/GrayScott2Pic/CMakeFiles/gray_scott2pic.dir/main.cpp.o [100%] Linking CXX executable gray_scott2pic [100%] Built target gray_scott2pic |
Maintenant, le programme gray_scott_gpu_cuda peut-être testé.