Occa: PGI ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ปดํŒŒ์ผ ์‹คํŒจ

์— ๋งŒ๋“  2020๋…„ 04์›” 28์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: libocca/occa

PGI Community Edition ๋ฒ„์ „ 19.10 ์„ ์‚ฌ์šฉํ•  ๋•Œ ์ปดํŒŒ์ผ์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜๋Š” ์ž˜๋ชป๋œ ํฌํ•จ ๊ฒฝ๋กœ๋กœ ์ธํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •( make OCCA_INCLUDE_PATH=/opt/pgi/linux86-64-llvm/19.10/include )ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/opt/pgi/linux86-64-llvm/19.10/bin/pgc++  -O3 -fast -Mipa=fast,inline -Msmartalloc -std=c++11 -fPIC -o /path/to/occa/obj/modes.o  -mp -c -I/path/to/occa/include -I/opt/pgi/linux86-64-llvm/19.10/include -I/usr/include -I/path/to/occa/src /path/to/occa/src/modes.cpp
pgc++-Warning--Mipa is not supported for this target

"/usr/include/c++/9/cstdlib", line 75: catastrophic error: cannot open source
          file "stdlib.h"
  #include_next <stdlib.h>
                          ^

1 catastrophic error detected in the compilation of "/path/to/occa/src/modes.cpp".
Compilation terminated.
make: *** [Makefile:132: /path/to/occa/obj/modes.o] Error 2

์ด๊ฒƒ์€ gcc 9.3.1๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” Fedora 31 Linux ์‹œ์Šคํ…œ์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  7 ๋Œ“๊ธ€

๋‚ด PGI 20.1 ์ปดํŒŒ์ผ๋Ÿฌ๋กœ ์ด๊ฒƒ์„ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค
CMake ๋นŒ๋“œ ๋˜๋Š” make ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๊นŒ?

๊ทธ๋ƒฅ ์ผ๋ฐ˜์ ์ธ Makefiles, ๋‚˜๋Š” occa์— ๋Œ€ํ•ด cmake๋„ ์‹œ๋„ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์–ด๋–ค PGI ์—๋””์…˜๊ณผ ํ”Œ๋žซํผ์— ์žˆ์Šต๋‹ˆ๊นŒ? cmake ๋˜๋Š” Makefile์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์ €๋Š” CMake๋ฅผ ๋…์ ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CentOS 7.7์—์„œ PGI 20.1(์ด Professional Edition ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค)์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์€ EasyBuild ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋˜๋ฏ€๋กœ ๊ด€๋ จ๋œ ๋Œ€๋ถ€๋ถ„์˜ ํฌํ•จ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์‹œ์Šคํ…œ ํฌํ•จ/๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ ํด๋ž˜์‹ ๋ฉ”์ดํฌ๋กœ ํ…Œ์ŠคํŠธ ํ•ด๋ณผ ์ˆ˜ ์žˆ์„๊นŒ์š”? PGI 20.1์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์ฃผ์— ์‹œ๋„ํ•ด ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ(๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ) ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ€์นญ์ ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด CMake ๋ณ€ํ˜•๋„ ์‚ฌ์šฉํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

๊นจ๋—ํ•œ occa ์ €์žฅ์†Œ์™€ make -j4 ๋กœ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์˜ค๋ฅ˜๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

pgc++ -O3 -fast -Mipa=fast,inline -Msmartalloc -std=c++11 -fPIC -o /path/to/occa/obj/modes.o -mp -c -I/path/to/occa/include -I/path/to/occa/include -I/path/to/occa/src /path/to/occa/src/modes.cpp

$ pgc++ --version

pgc++ 20.1-0 LLVM 64-bit target on x86-64 Linux -tp haswell 
PGI Compilers and Tools
Copyright (c) 2020, NVIDIA CORPORATION.  All rights reserved.

์žฌ์ƒ์‚ฐ ๋ถˆ๊ฐ€ํ•˜์—ฌ ํ์‡„

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰