PGI Compiler for OpenACC Output Syntax Highlighting

When use the PGI compiler to compile codes with OpenACC clauses, there will be lots of outputs. To read it more clearly, you may want the syntax highlighting. But the original bash may not support it(except zsh, fish etc.). Thus, saving the outputs into a log file, and viewing it with source-highlight is a practical way.

  • Under Linux, first we need source-highlight
sudo apt-get install source-highlight
  • Then make alias as bcat in ~/.bashrc
alias bcat='source-highlight -s bash --out-format=esc -o STDOUT -i'
  • Source your .bashrc file
source ~/.bashrc
  • When compile the source code with PGI, you can save the outputs into a log file acc.log:
pgc++ -acc -Minfo=accel -ta=nvidia test.cpp > acc.log 2>&1
  • Then use bcat command to view the outputs,
bcat acc.log
  • and it will be colorful
feq(double, double, double, double):
     34, Generating implicit acc routine seq
Init():
     76, Generating update device(u[:][:][:],rho[:][:])
         Generating present(f[:][:][:],F[:][:][:],rho[:][:],u[:][:][:],w[:],e[:][:])
         Loop is parallelizable
     78, Loop is parallelizable
         Accelerator kernel generated
         Generating Tesla code
         76, #pragma acc loop gang /* blockIdx.y */
         78, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */
     83, Loop is parallelizable
Collision():
    101, Generating present(f[:][:][:],rho[:][:],u[:][:][:],w[:],e[:][:])
         Loop is parallelizable
    103, Loop is parallelizable
         Accelerator kernel generated
         Generating Tesla code
        101, #pragma acc loop gang /* blockIdx.y */
        103, #pragma acc loop gang, vector(128) /* blockIdx.x threadIdx.x */
    108, Loop is parallelizable

pygmentize -g is also an good option.

未经作者同意禁止转载,作者保留一切权利。相关问题请联系chasenwu@live.com