2015-12-16 19 views
10

Czy istnieje odpowiednik następującego polecenia g ++ na kompilatorze ICC/ICPC?Jak mogę sprawdzić, które opcje kompilacji są włączone w kompilatorze Intel ICC?

?> g++ -march=native -m32 ... -Q --help=target 

który dał mi następujący wynik:

The following options are target specific: 
    -m128bit-long-double     [disabled] 
    -m16         [disabled] 
    -m32         [enabled] 
    -m3dnow        [disabled] 
    -m3dnowa        [disabled] 
    -m64         [enabled] 
    -m80387        [enabled] 
    -m8bit-idiv       [disabled] 
    -m96bit-long-double     [enabled] 
    -mabi=        sysv 
    -mabm         [disabled] 
    -maccumulate-outgoing-args   [disabled] 
    -maddress-mode=      short 
    -madx         [disabled] 
    -maes         [disabled] 
    -malign-data=       compat 
    -malign-double      [disabled] 
    -malign-functions=     0 
    -malign-jumps=      0 
    -malign-loops=      0 
    -malign-stringops      [enabled] 
    -mandroid        [disabled] 
    -march=        nehalem 
    -masm=        att 
    -mavx         [disabled] 
    -mavx2        [disabled] 
    -mavx256-split-unaligned-load   [disabled] 
    -mavx256-split-unaligned-store  [disabled] 
    -mavx512bw       [disabled] 
    -mavx512cd       [disabled] 
    -mavx512dq       [disabled] 
    -mavx512er       [disabled] 
    -mavx512f        [disabled] 
    -mavx512ifma       [disabled] 
    -mavx512pf       [disabled] 
    -mavx512vbmi       [disabled] 
    -mavx512vl       [disabled] 
    -mbionic        [disabled] 
    -mbmi         [disabled] 
    -mbmi2        [disabled] 
    -mbranch-cost=      0 
    -mcld         [disabled] 
    -mclflushopt       [disabled] 
    -mclwb        [disabled] 
    -mcmodel=        32 
    -mcpu=      
    -mcrc32        [disabled] 
    -mcx16        [enabled] 
    -mdispatch-scheduler     [disabled] 
    -mdump-tune-features     [disabled] 
    -mf16c        [disabled] 
    -mfancy-math-387      [enabled] 
    -mfentry        [enabled] 
    -mfma         [disabled] 
    -mfma4        [disabled] 
    -mforce-drap       [disabled] 
    -mfp-ret-in-387      [enabled] 
    -mfpmath=        387 
    -mfsgsbase       [disabled] 
    -mfused-madd     
    -mfxsr        [enabled] 
    -mglibc        [enabled] 
    -mhard-float       [enabled] 
    -mhle         [disabled] 
    -mieee-fp        [enabled] 
    -mincoming-stack-boundary=   0 
    -minline-all-stringops    [disabled] 
    -minline-stringops-dynamically  [disabled] 
    -mintel-syntax    
    -mlarge-data-threshold=    0x10000 
    -mlong-double-128      [disabled] 
    -mlong-double-64      [disabled] 
    -mlong-double-80      [enabled] 
    -mlwp         [disabled] 
    -mlzcnt        [disabled] 
    -mmemcpy-strategy=   
    -mmemset-strategy=   
    -mmmx         [enabled] 
    -mmovbe        [disabled] 
    -mmpx         [disabled] 
    -mms-bitfields      [disabled] 
    -mmwaitx        [disabled] 
    -mno-align-stringops     [disabled] 
    -mno-default       [disabled] 
    -mno-fancy-math-387     [disabled] 
    -mno-push-args      [disabled] 
    -mno-red-zone       [disabled] 
    -mno-sse4        [disabled] 
    -mnop-mcount       [disabled] 
    -momit-leaf-frame-pointer    [disabled] 
    -mpc32        [disabled] 
    -mpc64        [disabled] 
    -mpc80        [disabled] 
    -mpclmul        [disabled] 
    -mpcommit        [disabled] 
    -mpopcnt        [enabled] 
    -mprefer-avx128      [disabled] 
    -mpreferred-stack-boundary=   0 
    -mprefetchwt1       [disabled] 
    -mprfchw        [disabled] 
    -mpush-args       [enabled] 
    -mrdrnd        [disabled] 
    -mrdseed        [disabled] 
    -mrecip        [disabled] 
    -mrecip=      
    -mrecord-mcount      [disabled] 
    -mred-zone       [enabled] 
    -mregparm=       0 
    -mrtd         [disabled] 
    -mrtm         [disabled] 
    -msahf        [enabled] 
    -msha         [disabled] 
    -mskip-rax-setup      [disabled] 
    -msoft-float       [disabled] 
    -msse         [enabled] 
    -msse2        [enabled] 
    -msse2avx        [disabled] 
    -msse3        [enabled] 
    -msse4        [enabled] 
    -msse4.1        [enabled] 
    -msse4.2        [enabled] 
    -msse4a        [disabled] 
    -msse5      
    -msseregparm       [disabled] 
    -mssse3        [enabled] 
    -mstack-arg-probe      [disabled] 
    -mstack-protector-guard=    tls 
    -mstackrealign      [enabled] 
    -mstringop-strategy=     [default] 
    -mtbm         [disabled] 
    -mtls-dialect=      gnu 
    -mtls-direct-seg-refs     [enabled] 
    -mtune-ctrl=     
    -mtune=        nehalem 
    -muclibc        [disabled] 
    -mveclibabi=       [default] 
    -mvect8-ret-in-mem     [disabled] 
    -mvzeroupper       [disabled] 
    -mx32         [disabled] 
    -mxop         [disabled] 
    -mxsave        [disabled] 
    -mxsavec        [disabled] 
    -mxsaveopt       [disabled] 
    -mxsaves        [disabled] 

    Known assembler dialects (for use with the -masm-dialect= option): 
    att intel 

    Known ABIs (for use with the -mabi= option): 
    ms sysv 

    Known code models (for use with the -mcmodel= option): 
    32 kernel large medium small 

    Valid arguments to -mfpmath=: 
    387 387+sse 387,sse both sse sse+387 sse,387 

    Known data alignment choices (for use with the -malign-data= option): 
    abi cacheline compat 

    Known vectorization library ABIs (for use with the -mveclibabi= option): 
    acml svml 

    Known address mode (for use with the -maddress-mode= option): 
    long short 

    Known stack protector guard (for use with the -mstack-protector-guard= option): 
    global tls 

    Valid arguments to -mstringop-strategy=: 
    byte_loop libcall loop rep_4byte rep_8byte rep_byte unrolled_loop vector_loop 

    Known TLS dialects (for use with the -mtls-dialect= option): 
    gnu gnu2 

Ten gcc/g ++ opcja daje mi dużo Przydatne informacje, takie jak: m32 i msse4.2 jest enabled, march jest nehalem, mfpmath jest 387, masm to att, ect ...

Naprawdę chciałbym wiedzieć, czy taka opcja istnieje dla kompilatora Intel icc/icpc.

Dzięki.

+1

Byłoby lepiej, gdyby pytanie zawierało rzeczywistą wydajność z g ++ dla pokazanych opcji. – unwind

+1

Dodałem go, dziękuję za poradę (+1). –

+0

Wolę użyć opcji GCC '-v':' $ gcc -v test.c' wyświetli coś takiego: '/usr/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/cc1 -quiet -v ac -march = sandybridge-mmmx -mno-3dnow -msse ... '. Może to będzie działać również w ICC? – rodrigo

Odpowiedz

0

Można spróbować następująco:

icpc -dM -E -x c++ *.c 

Były połączone z opcjami:

-vec-report[=n] 
      control amount of vectorizer diagnostic information 
      n=0 no diagnostic information 
      n=1 indicate vectorized loops (DEFAULT when enabled) 
      n=2 indicate vectorized/non-vectorized loops 
      n=3 indicate vectorized/non-vectorized loops and prohibiting 
        data dependence information 
      n=4 indicate non-vectorized loops 
      n=5 indicate non-vectorized loops and prohibiting data 
        dependence information 
      n=6 indicate vectorized/non-vectorized loops with greater 
        details and prohibiting data dependence information 
      n=7 indicate vector code quality message ids and data values 
        for vectorized loops 

-qopt-report[=n] 
      generate an optimization report. Default destination is 
      <target>.optrpt. Levels of 0 - 5 are valid. 
      Please see documentation for additional details of 
      information provided by phase per level. 
      0 disable optimization report output 
      2 DEFAULT when enabled 

-qopt-report-file=[stdout | stderr | <file>] 
      specify the filename or output stream for the generated report 

-qopt-report-stdout 
      specify the generated report should be directed to stdout 

-qopt-report-per-object 
      specify the generated report should be directed to a .optrpt file 
      in the output directory (DEFAULT when another destination for the 
    report is not specified) 

-qopt-report-phase=<phase>[,<phase>,...] 
      specify one or more phases that reports are generated against 

-qopt-report-routine=<name>[,<name>,...] 
      restrict the report to routines containing the given name 

-qopt-report-filter=<string> 
      restricts the opt-report to specific files, routines or line 
      number ranges. Refer to the documentation for the specific 
      syntax of parameter string. 

-qopt-report-format=[text|vs] 
      specify the output format to be used for the opt-report as either 
      plain text or a format for use in the Microsoft* Visual Studio IDE 

-q[no-]opt-report-embed 
      When enabled, if an assembly file is being generated, special loop 
      info annotations will be emitted in the assembly file. If an object 
      file/executable is being generated, these will be emitted into the 
      object file/executable for use by the Intel VTune Amplifier 
      application. Automatically enabled when symbolic debug information 
      is enabled. 

-qopt-report-help 
      display the optimization phases available for reporting 

-qopt-report-names=<keyword> 
      Specifies whether mangled or unmangled names should appear in the 
      optimization report. 
      mangled - use mangled names 
      unmangled - use unmangled names (DEFAULT) 

-tcheck [mode] 
      enable analysis of threaded applications (requires Intel(R) Thread 
      Checker; cannot be used with compiler alone) 
      tci - instruments a program to perform a thread-count-independent 
        analysis 
    tcd - instruments a program to perform a thread-count-dependent 
        analysis (DEFAULT when mode is not used) 
      api - instruments a program at the api-imports level 

-tcollect[=<lib>] 
      inserts instrumentation probes calling the Intel(R) Trace Collector 
      API. The library -l<lib> is linked in the default being -lVT 
      (requires Intel(R) Trace Collector) 

-tcollect-filter file 
      Enable or disable the instrumentation of specified functions. 
      (requires Intel(R) Trace Collector) 

zapewni Ci wystarczających informacji. Mam nadzieję, że to pomaga.

0

Intel Compiler obsługuje opcję kompilatora -help i udostępnia opcję filtrowania wyjścia w oparciu o kategorie, jak pokazano poniżej:

icpc -help 
. 
. 
-help [category] print full or category help message 

Valid categories include 
    advanced  - Advanced Optimizations 
    codegen   - Code Generation 
    compatibility - Compatibility 
    component  - Component Control 
    data   - Data 
    deprecated  - Deprecated Options 
    diagnostics  - Compiler Diagnostics 
    float   - Floating Point 
    help   - Help 
    inline   - Inlining 
    ipo    - Interprocedural Optimization (IPO) 
    language  - Language 
    link   - Linking/Linker 
    misc   - Miscellaneous 
    opt    - Optimization 
    output   - Output 
    pgo    - Profile Guided Optimization (PGO) 
    preproc   - Preprocessor 
    reports   - Optimization Reports 
    openmp   - OpenMP and Parallel Processing 

Dla tego konkretnego wniosku, możesz uzyskać opcje w kategorii Codegen.