Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-32516

Explore using the oneAPI compiler from Intel for building

    XMLWordPrintable

Details

    • Story
    • Status: Done
    • Resolution: Done
    • None
    • lsst_distrib
    • None
    • 3
    • Architecture
    • No

    Attachments

      Activity

        No builds found.
        wittgen Matthias Wittgen created issue -

        Intel provides the oneAPI compiler icpx, icx in the intel conda channel and they can be installed on top of the lsst stack.
        eups packages that are not scons based use non uniform compiler flags
        As a proof of concept this was hacked by creating wrapper shell scripts invoking the intel compiler and adding extra flags.

        #!/bin/sh
        link=true
        extraflags1=""
        extraflags2=""
        prefix=$(dirname $(dirname $(which gcc )))
        if [ "$1" == "--version" ]
        then
          exec icx --version
        fi
         
        for arg in "$@"
        do
          if [[ "$arg" == -c  ]]
          then
            link=false
            break
          fi
         
        done
        if $link
        then
          extraflags1="-B$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0"
          extraflags2="-L$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0"
          extraflags3="-xCORE-AVX2 -fp-model=precise"
        else
          extraflags1="-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0"
          extraflags2="-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0/x86_64-conda-linux-gnu"
          extraflags3="-xCORE-AVX2 -fp-model=precise"
         
        fi
        echo icx $extraflags1 $extraflags2 $extraflags3 $@
        exec icx $extraflags1 $extraflags2 $extraflags3 $@
        

        Compilation requires to use floating point model -fp-model=precise
        lsst_dsitrib can be successfully compiled without any changes to the code.

        wittgen Matthias Wittgen added a comment - Intel provides the oneAPI compiler icpx , icx in the intel conda channel and they can be installed on top of the lsst stack . eups packages that are not scons based use non uniform compiler flags As a proof of concept this was hacked by creating wrapper shell scripts invoking the intel compiler and adding extra flags. #!/bin/sh link= true extraflags1= "" extraflags2= "" prefix=$( dirname $( dirname $( which gcc ))) if [ "$1" == "--version" ] then exec icx --version fi   for arg in "$@" do if [[ "$arg" == -c ]] then link= false break fi   done if $link then extraflags1= "-B$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0" extraflags2= "-L$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0" extraflags3= "-xCORE-AVX2 -fp-model=precise" else extraflags1= "-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0" extraflags2= "-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0/x86_64-conda-linux-gnu" extraflags3= "-xCORE-AVX2 -fp-model=precise"   fi echo icx $extraflags1 $extraflags2 $extraflags3 $@ exec icx $extraflags1 $extraflags2 $extraflags3 $@ Compilation requires to use floating point model -fp-model=precise lsst_dsitrib can be successfully compiled without any changes to the code.
        wittgen Matthias Wittgen made changes -
        Field Original Value New Value
        Status To Do [ 10001 ] In Progress [ 3 ]
        tjenness Tim Jenness made changes -
        Team Data Release Production [ 10301 ]
        wittgen Matthias Wittgen made changes -
        Resolution Done [ 10000 ]
        Status In Progress [ 3 ] Done [ 10002 ]
        yusra Yusra AlSayyad made changes -
        Epic Link PREOPS-1161 [ 1475339 ]
        Story Points 3
        tjenness Tim Jenness made changes -
        Team Data Release Production [ 10301 ] Architecture [ 10304 ]
        tjenness Tim Jenness made changes -
        Epic Link PREOPS-1161 [ 1475339 ]

        People

          wittgen Matthias Wittgen
          wittgen Matthias Wittgen
          Matthias Wittgen
          Votes:
          0 Vote for this issue
          Watchers:
          1 Start watching this issue

          Dates

            Created:
            Updated:
            Resolved:

            Jenkins

              No builds found.