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