3.4.5.1 : Compilation
Sur mon ordinateur le programme nvc++ est installé à /opt/nvidia/hpc_sdk/Linux_x86_64/20.11/compilers/bin/nvc++.
Appellons CMake avec le bon compilateur :
cmake .. -DCMAKE_CXX_COMPILER=/opt/nvidia/hpc_sdk/Linux_x86_64/20.11/compilers/bin/nvc++ -- The C compiler identification is GNU 9.3.0 -- The CXX compiler identification is PGI 20.11.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: /opt/nvidia/hpc_sdk/Linux_x86_64/20.11/compilers/bin/nvc++ -- Check for working CXX compiler: /opt/nvidia/hpc_sdk/Linux_x86_64/20.11/compilers/bin/nvc++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Program HadamardProductNvcpp version 0.1.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 MICROBENCHMARK headers : /home/pierre/usr/include/MicroBenchmark -- Found lib MICROBENCHMARK : /home/pierre/usr/lib -- Activate mode to avoid performance test refreshing : NO_PERF_REFRESH = yes -- 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 -- GPU mode disabled : GPU_MODE = no -- Configuring done -- Generating done -- Build files have been written to: XXX/HadamardProductNvcpp/build
Bien entendu, cela n'est valable que pour un programme C++, car le compilateur C n'a pas changé.
Appellons make :
1 |
make |
Detail de la compilation
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 32 33 34 35 36 37 38 39 40 |
make Scanning dependencies of target perf_hadamard_gpupar_O0 [ 4%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O0.dir/hadamard.cpp.o nvc++-Info-Switch -Mvect forces -O2 [ 9%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O0.dir/main.cpp.o nvc++-Info-Switch -Mvect forces -O2 [ 14%] Linking CXX executable perf_hadamard_gpupar_O0 [ 14%] Built target perf_hadamard_gpupar_O0 Scanning dependencies of target perf_hadamard_gpupar_O4 [ 19%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O4.dir/hadamard.cpp.o [ 23%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O4.dir/main.cpp.o [ 28%] Linking CXX executable perf_hadamard_gpupar_O4 [ 28%] Built target perf_hadamard_gpupar_O4 Scanning dependencies of target perf_hadamard_gpupar_O1 [ 33%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O1.dir/hadamard.cpp.o nvc++-Info-Switch -Mvect forces -O2 [ 38%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O1.dir/main.cpp.o nvc++-Info-Switch -Mvect forces -O2 [ 42%] Linking CXX executable perf_hadamard_gpupar_O1 [ 42%] Built target perf_hadamard_gpupar_O1 Scanning dependencies of target perf_hadamard_gpupar_O2 [ 47%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O2.dir/hadamard.cpp.o [ 52%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O2.dir/main.cpp.o [ 57%] Linking CXX executable perf_hadamard_gpupar_O2 [ 57%] Built target perf_hadamard_gpupar_O2 Scanning dependencies of target perf_hadamard_gpupar_O3 [ 61%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O3.dir/hadamard.cpp.o [ 66%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_O3.dir/main.cpp.o [ 71%] Linking CXX executable perf_hadamard_gpupar_O3 [ 71%] Built target perf_hadamard_gpupar_O3 Scanning dependencies of target perf_hadamard_gpupar_vectorize_O3 [ 76%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_vectorize_O3.dir/hadamard.cpp.o [ 80%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_vectorize_O3.dir/main.cpp.o [ 85%] Linking CXX executable perf_hadamard_gpupar_vectorize_O3 [ 85%] Built target perf_hadamard_gpupar_vectorize_O3 Scanning dependencies of target perf_hadamard_gpupar_vectorize_O4 [ 90%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_vectorize_O4.dir/hadamard.cpp.o [ 95%] Building CXX object src/CMakeFiles/perf_hadamard_gpupar_vectorize_O4.dir/main.cpp.o [100%] Linking CXX executable perf_hadamard_gpupar_vectorize_O4 [100%] Built target perf_hadamard_gpupar_vectorize_O4 |