Giter VIP home page Giter VIP logo

Comments (7)

psyhtest avatar psyhtest commented on August 29, 2024

Ha-ha, OpenBLAS "clearly wanted" gfortran-6 because... CK clearly told it so in the install.sh script just before calling make:

export FC=${CK_FC}

So CK should have been a bit more careful when setting up the environment. I believe an explicit dependency on a Fortran compiler would override the default value of CK_FC. This is actually one of the CK strengths where we can gradually cover all important dependencies once they are discovered...

from ck-math.

gfursin avatar gfursin commented on August 29, 2024

Indeed, I detect C and then set C++ and fortran without really checking whether they exists - it was done for a quick prototyping (particularly, since I rarely use Fortran nowadays). I agree that we should try to separate them and add fortran entry (and possibly c++ entry) . I will check it out later. And yes, the idea of CK, is to quickly prototype things and then gradually improve them (including meta and API), without breaking previous experiments!

from ck-math.

psyhtest avatar psyhtest commented on August 29, 2024

Following @gfursin's resoluton of the corresponding ctuning/ck-env issue, I've added an explicit dependency on gfortran. I tried using the lang-f95 tag but unfortunately the same was present in GCC (GNU C compiler), so I reverted to using the gfortran tag.

An open question whether a different Fortran compiler be used to compile OpenBLAS?

from ck-math.

gfursin avatar gfursin commented on August 29, 2024

I removed lang-f95 (and other fortran) tags from gcc soft description. However, you may need to reregister GCC env otherwise old tags will still be used. I also added tags "fortran". The same tag I added to compiler.icc (Intel compilers which include C and Fortran). If you use CK_FC env, you can compile your program with different fortran compilers, but I don't know about OpenBLAS ...

from ck-math.

psyhtest avatar psyhtest commented on August 29, 2024

So now the lib-openblas-0.2.19 package has the following dependencies:

  "deps": {
    "boost": {
      "local": "yes",
      "name": "Boost C++ libraries",
      "sort": 5,
      "tags": "lib,boost"
    },
    "c-compiler": {
      "add_to_path": "yes",
      "local": "yes",
      "name": "C compiler",
      "sort": 10,
      "tags": "compiler,lang-c"
    },
    "gfortran-compiler": {
      "add_to_path": "yes",
      "local": "yes",
      "name": "GNU Fortran compiler",
      "sort": 15,
      "tags": "compiler,gfortran",
      "only_for_target_os_tags": [
        "linux","windows"
      ]
    }

But its generalisation to non-Linux systems, lib-openblas-0.2.19-universal, has the following ones:

  "deps": {
    "compiler": {
      "local": "yes",
      "name": "C compiler",
      "skip_from_bat":"yes",
      "only_for_target_os_tags": [
        "android",
        "linux"
      ],
      "sort": 10,
      "tags": "compiler,lang-c"
    },
    "utils-unix-win": {
      "local": "yes",
      "force_target_as_host": "yes",
      "name": "Unix Utils for Windows",
      "skip_from_bat":"yes",
      "only_for_host_os_tags": [
        "windows"
      ],
      "sort": 1,
      "tags": "utils,unix-win"
    },
    "compiler-perl": {
      "local": "yes",
      "force_target_as_host": "yes",
      "name": "Perl",
      "skip_from_bat":"yes",
      "only_for_host_os_tags": [
        "windows"
      ],
      "sort": 3,
      "tags": "compiler,perl"
    },
    "compiler-mingw": {
      "local": "yes",
      "force_target_as_host": "yes",
      "add_to_path":"yes",
      "name": "C compiler",
      "skip_from_bat":"yes",
      "only_for_host_os_tags": [
        "windows"
      ],
      "sort": 5,
      "tags": "compiler,lang-c,gcc"
    }

So the universal package is missing the Fortran dependency, as well as the Boost one (although it has a bunch of Windows-related ones). Should they be introduced?

from ck-math.

gfursin avatar gfursin commented on August 29, 2024

Boost doesn't seem to be needed, that's why I removed it (and it seemed to work fine since then for all targets). As for gfortran - yes, will try it now ...

from ck-math.

gfursin avatar gfursin commented on August 29, 2024

Added gfortran dependency for Linux and Windows to this package; did not add Boost because it's not needed; fixed gfortran detection in ck-env. Everything seems to be working so I am closing this ticket ...

from ck-math.

Related Issues (19)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.