• Bug#875618: openblas: please enable build on s390x

    From =?UTF-8?Q?S=C3=A9bastien?= Villemot@21:1/5 to Graham Inggs on Wed Sep 13 23:20:02 2017
    XPost: linux.debian.bugs.dist

    [CC’ing the debian-s390@lists.debian.org list; s390 folks, please keep the bug
    in CC on replies]

    Dear Graham,

    On Tue, Sep 12, 2017 at 07:28:04PM +0200, Graham Inggs wrote:
    Source: openblas
    Version: 0.2.20+ds-1
    Severity: wishlist

    From Changelog.txt in OpenBLAS 0.2.20:

    IBM Z: * New target z13 with BLAS3 optimizations

    I have just checked, and openblas/0.2.20-3 builds successfully on zelenka.debian.org.
    Please enable building on s390x.

    Unfortunately it does not look that simple. OpenBLAS is optimized for z13, but our s390x port is supposed to support all the z systems (see [1]).

    In particular, the OpenBLAS build system adds the "-march=z13 -mzvector" compilation flags. If I remove them, then the package fails to build on zelenka: it complains about unknown assembly instructions, which are not present on old z-systems. This is the proof that OpenBLAS cannot produce a binary generic enough for our s390x port.

    So unless I am missing something, it’s not possible to enable building for s390x until 1) OpenBLAS supports older z-systems or 2) the hardware requirements for the Debian s390x port are upgraded.

    Best,

    [1] https://www.debian.org/releases/stable/s390x/ch02s01.html.en#idm45373715987328

    --
    ⢀⣴⠾⠻⢶⣦⠀ Sébastien Villemot
    ⣾⠁⢠⠒⠀⣿⡁ Debian Developer
    ⢿⡄⠘⠷⠚⠋⠀ http://sebastien.villemot.name
    ⠈⠳⣄⠀⠀⠀⠀ http://www.debian.org

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEU5UdlScuDFuCvoxKLOzpNQ7OvkoFAlm5kN0ACgkQLOzpNQ7O vkot6Q//crkwkmwqY0sDYJUSxBDlrNN+xHHG/vnIvCJgT6lp+g0Q74Sn5VHLi2/K 7lFA1AyKfBlU0WC7F7u56mCd4nWbEGFpx9sK6ZIoequUT47hugD/UdciZpuw0Atx C+ksb2umBztSYwnYSHSNr9emBPr8XMpcBvIWms95ys0NqN8vPQYEkvo4DgeiLuzg DdlL9JKl32FfKVgW30T5YJQ6Y7+UkqM+9dplr660MDW6WMORSkZ2Ny8nNMfr384A 2v6VrSFY10Q1mwNQFbYwUVM/+jsYBN+UjKr1I15R8FeaL3bTrQfquZTV5LBoYT+T ADuu8rb1WrHKVG1TxlD3pLSUJdPqFgXM4Ci0JgTw7YhLTputjfnl9z7CSSCChBN0 zouKQFFnTQyaV1cB0U9X+NlFyedLQWUBfZf1b+Pp0tR+iZjw4Z3t8dDCpeJZjPHq VL8f9CFfrjZT7McaAPrRbfhID08ClABh+K5LjJaYP3+OqZF/cEDAYMI243U72RTw oV/7PywrvyYiZq03MBoZiULzjMAiA265mnrTFcnb6A4EJYEkTeBml3Or38yeN1oQ VKY4QFyMQcfJGSIltIBWhD/sSOSx6NArt2FMZXPHQpwVi7VpPfi3oVm3geBbukPJ Adv9i2S084B4hffv7u2QspJqqcnHyk18fO3oV0yYmY8yOxPv2Y8=
    =Vafx
    -----END PG
  • From PICCA Frederic-Emmanuel@21:1/5 to All on Wed Sep 13 23:50:02 2017
    XPost: linux.debian.bugs.dist

    Hello

    Unfortunately it does not look that simple. OpenBLAS is optimized for z13, but
    our s390x port is supposed to support all the z systems (see [1]).

    what about asking for a a z13-support package to the isa-support (source package) maintainer.
    This way it could be possible to upload an optimise vesion of openblas which can install on recent enought s390x machines.

    the question will be then : does the buildd support these instructions ?

    Cheers

    Fred

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?S=C3=A9bastien?= Villemot@21:1/5 to PICCA Frederic-Emmanuel on Thu Sep 14 11:10:01 2017
    XPost: linux.debian.bugs.dist

    On Wed, Sep 13, 2017 at 08:33:08PM +0000, PICCA Frederic-Emmanuel wrote:
    Hello

    Unfortunately it does not look that simple. OpenBLAS is optimized for z13, but
    our s390x port is supposed to support all the z systems (see [1]).

    what about asking for a a z13-support package to the isa-support (source package) maintainer. This way it could be possible to upload an optimise vesion of openblas which can install on recent enought s390x machines.

    I am not totally convinced by this solution. If we adopt it, somebody who installs e.g. octave on an old system-z machine will be hit by a failure in the dpkg installation process, which needs manual intervention. This is likely to generate problems in automated installers (and also confuse and annoy system admins).

    the question will be then : does the buildd support these instructions ?

    I leave that to the s390 porters to answer.

    --
    ⢀⣴⠾⠻⢶⣦⠀ Sébastien Villemot
    ⣾⠁⢠⠒⠀⣿⡁ Debian Developer
    ⢿⡄⠘⠷⠚⠋⠀ http://sebastien.villemot.name
    ⠈⠳⣄⠀⠀⠀⠀ http://www.debian.org

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEU5UdlScuDFuCvoxKLOzpNQ7OvkoFAlm6No0ACgkQLOzpNQ7O vkoz1g/9Fx4rxfvDAqiEEv23ScTLEVLdGtua0FoQRCvQASRfsi6k7lGbrbxr+Gon Hw/UxOAw3uXGfec192gj5qUYlxFrwjqRv7KHagl73TEqcskjZBQWztiCYNREn6GQ 1MnH6y1Xntfh3EyGXlb9/Pe1pvTzz4jRfo6lhGuN0Zm8kjROsyJvQMlk5aF3Rp+c E7xbmgrBt9ID9rzleOsTLVBcGGFhX30di1cFz3hdHwedpMOoCss3rdywBmu1VJzY wnRx3Q+jOOtDGtjUou9KWhulJPeLopWY2nUGQaMkyO51GJkG65AjrXRdCBwCKvAd CGxNSAS/to3eNHezJeEaYZgnvaShmjGEmcljq3v9lNKGVBvxZczRrLcw3c0dN6K1 58sNKZmkFz690PNMnShn9EVf5Ldvr9z1258Oy8XaXB/9Hd9UC589qujMqmvfTwoG CbjpS6BEDT7Hwv6+RTFD4U5GxfL66VqQRgWe7q7I62rdFAhG1bJNqbsE3du6pT9d bZxDeH9ayKbbAf3ok9jYwp+pGDvIWP/miKQpt+OWyLTh12ZjmVjN2Ay4F5WkYAoG rk7V4O1FsQHlbXB52UlNj1SgTL6C4AKpV3JE5K9ih16tq7Dmf6O01tc/C04IqxZE JEig8PSoRvYpcdhiKHATXiNla691YIBjKezAdzVqWiJ8TYQUIek=
    =hVxN
    -----END PG
  • From Christian Borntraeger@21:1/5 to All on Thu Sep 14 15:30:02 2017
    XPost: linux.debian.bugs.dist

    On 09/14/2017 09:58 AM, Sébastien Villemot wrote:
    On Wed, Sep 13, 2017 at 08:33:08PM +0000, PICCA Frederic-Emmanuel wrote:
    Hello

    Unfortunately it does not look that simple. OpenBLAS is optimized for z13, but
    our s390x port is supposed to support all the z systems (see [1]).

    what about asking for a a z13-support package to the isa-support (source
    package) maintainer. This way it could be possible to upload an optimise
    vesion of openblas which can install on recent enought s390x machines.

    I am not totally convinced by this solution. If we adopt it, somebody who installs e.g. octave on an old system-z machine will be hit by a failure in the
    dpkg installation process, which needs manual intervention. This is likely to generate problems in automated installers (and also confuse and annoy system admins).

    the question will be then : does the buildd support these instructions ?

    I leave that to the s390 porters to answer.

    FWIW, some years ago I did the atlas port for s390x. For dynamic linking the atlas
    build/package process did support the exploitation of ELF HW_CAPS. So you could build a z900 (generic) and a z13 variant which is then picked by the linker at runtime. No idea if openblas allows the same. Of course the static variant (.a) must be the generic one.

    Christian

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?S=C3=A9bastien?= Villemot@21:1/5 to Christian Borntraeger on Mon Sep 18 15:00:02 2017
    XPost: linux.debian.bugs.dist

    Control: tags -1 upstream
    Control: forwarded -1 https://github.com/xianyi/OpenBLAS/issues/1307

    On Thu, Sep 14, 2017 at 12:34:34PM +0200, Christian Borntraeger wrote:
    On 09/14/2017 09:58 AM, Sébastien Villemot wrote:
    On Wed, Sep 13, 2017 at 08:33:08PM +0000, PICCA Frederic-Emmanuel wrote:
    Unfortunately it does not look that simple. OpenBLAS is optimized for z13, but
    our s390x port is supposed to support all the z systems (see [1]).

    what about asking for a a z13-support package to the isa-support (source >> package) maintainer. This way it could be possible to upload an optimise >> vesion of openblas which can install on recent enought s390x machines.

    I am not totally convinced by this solution. If we adopt it, somebody who installs e.g. octave on an old system-z machine will be hit by a failure in the
    dpkg installation process, which needs manual intervention. This is likely to
    generate problems in automated installers (and also confuse and annoy system
    admins).

    the question will be then : does the buildd support these instructions ?

    I leave that to the s390 porters to answer.

    FWIW, some years ago I did the atlas port for s390x. For dynamic linking the atlas
    build/package process did support the exploitation of ELF HW_CAPS. So you could
    build a z900 (generic) and a z13 variant which is then picked by the linker at
    runtime. No idea if openblas allows the same. Of course the static variant (.a)
    must be the generic one.

    Thanks for your feedback. I have opened a request upstream about the need for a z900 kernel, and for a dynamic selection between the z900 and z13 kernels
    (as OpenBLAS currently does on x86).

    --
    ⢀⣴⠾⠻⢶⣦⠀ Sébastien Villemot
    ⣾⠁⢠⠒⠀⣿⡁ Debian Developer
    ⢿⡄⠘⠷⠚⠋⠀ http://sebastien.villemot.name
    ⠈⠳⣄⠀⠀⠀⠀ http://www.debian.org

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEU5UdlScuDFuCvoxKLOzpNQ7OvkoFAlm/tGcACgkQLOzpNQ7O vkoJRQ/8Dp/1A7iq4JF2/xSowSIY3RHc19+IdsDlfupkU7QsNLI21J7P/MJKffUJ ZwL47fK77JaJBmXXNewJBQMf8aK1xOzV2IzKK4DAdsw4B3Qa2AlEYujGLOyKW8x4 f6Guatt2Y7YuTmCgq77dgwKT9bd+Qs7idAIyMQMQ5mDrspFP1vCHLtnUCplZ/ujN cupzMK3+X2kAaoCrFRDgBqd8hWZmn6z0e2LaFwGzMnpyzRfS7B7RMY1nryVPwav3 0sq0fau/LeEX8/A49plIWCR1M3pl1r8DT66E6dUxMy0QPKqbeTiV5/vk+T1HE8FY zpf5prLD2RlDpxikyoEYIxyMv4xT4MLfsboOQ6fX5xAOg5Wc+JtlPEzCU0pBgbE4 QHh/+N5rv8K33hSTMVjhDhCu9PQkIr9Ucr0d2Lhlhm/F+MWfEC/MhBijuuBeHhRV xZ0iiNTFOGoWP4Azz0msl6dzJkzrhLKqfMwvak4GNqWN3jCdABmMg2g4QxfSzO/o YUPML8nozrdl8pa9ioJ7iCC9C21OfqG/RoEKTC9Y4j82FQLyGNtJmut27VVJx4FY GC/m9XeHqCjy1uyolzg0pJiee1eHWaOjdvrW3RxZj2WdH39G0r3G6xet9jGLy8bd TfWZsl2ioPjqPMLdgeW6SmW6KXokvdtHnlD4tdg5a41Ucn7w3fs=
    =ZRZF
    -----END PG
  • From =?UTF-8?Q?S=C3=A9bastien?= Villemot@21:1/5 to All on Tue Sep 19 13:50:01 2017
    XPost: linux.debian.bugs.dist

    Control: tags -1 = pending
    Control: notforwarded -1

    On Mon, Sep 18, 2017 at 01:56:23PM +0200, Sébastien Villemot wrote:
    On Thu, Sep 14, 2017 at 12:34:34PM +0200, Christian Borntraeger wrote:
    On 09/14/2017 09:58 AM, Sébastien Villemot wrote:
    On Wed, Sep 13, 2017 at 08:33:08PM +0000, PICCA Frederic-Emmanuel wrote:
    Unfortunately it does not look that simple. OpenBLAS is optimized for z13, but
    our s390x port is supposed to support all the z systems (see [1]).

    what about asking for a a z13-support package to the isa-support (source >> package) maintainer. This way it could be possible to upload an optimise >> vesion of openblas which can install on recent enought s390x machines.

    I am not totally convinced by this solution. If we adopt it, somebody who installs e.g. octave on an old system-z machine will be hit by a failure in the
    dpkg installation process, which needs manual intervention. This is likely to
    generate problems in automated installers (and also confuse and annoy system
    admins).

    the question will be then : does the buildd support these instructions ?

    I leave that to the s390 porters to answer.

    FWIW, some years ago I did the atlas port for s390x. For dynamic linking the atlas
    build/package process did support the exploitation of ELF HW_CAPS. So you could
    build a z900 (generic) and a z13 variant which is then picked by the linker at
    runtime. No idea if openblas allows the same. Of course the static variant (.a)
    must be the generic one.

    Thanks for your feedback. I have opened a request upstream about the need for a
    z900 kernel, and for a dynamic selection between the z900 and z13 kernels
    (as OpenBLAS currently does on x86).

    It turns out that there is already a support for generic System z, I had overlooked that.

    I have therefore pushed a changeset that builds a generic s390x binary.

    However, upstream does not currently provide runtime detection, so owners of a z13 system will have to recompile locally (as explained in README.Debian) in order to get the best out of OpenBLAS (note that this is the same situation as all the non-x86 archs).

    --
    ⢀⣴⠾⠻⢶⣦⠀ Sébastien Villemot
    ⣾⠁⢠⠒⠀⣿⡁ Debian Developer
    ⢿⡄⠘⠷⠚⠋⠀ http://sebastien.villemot.name
    ⠈⠳⣄⠀⠀⠀⠀ http://www.debian.org

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCAAdFiEEU5UdlScuDFuCvoxKLOzpNQ7OvkoFAlnA9KYACgkQLOzpNQ7O vkrk/w/7BEvPajIO66vnrP24wgYEkYs6YYO7IH8LB5cujFVu+dw0mAqbxwcjHngQ xuah8pNgyx12YccMiQUTKK+Lf3NZrW5rv3YCtRDokfTOcGEe1WjXZbh6bm1MtAPf pPO61PGrTqLknhMJgIGQjpTEyfdMjbXUf0CcqaJ4iikax040EnpgrftyAfX6oHh1 P57svE4ksO2trQlMbxbh+HIbKSJ3xnG2eRlmrSgGqtIMw72fKSEPMHGLOjM/0bqQ sftLARQV4nbnFIlGPNTJjKag5aYPp8LH/jgSHO8UIPGt0z3Eek2JuDKiwUFPHAsX LmYEiH+eljdwEZH5FInSlzCMR/S7LJdW3RqixXmF0UCy76PomynBC2AhBu71Rg46 wOSPZi+slGKr71somO07fJZW5p8fGPAa9vbvgAGv5uL0IT2kKzxLhozwpgr/RTjH gDsI1Lno8fJdiRfvdPlVbxvNSpxPYabylIYj8JlUz9JHZ1Qk3fMmL+GEk9LpvwQJ dpdOKMvccZQwyw6DApOEmU4hV91mejhJUW8dvAwbAaVBUgtoEVY6SQHINbFWUJEo mshvzgDOEBXwJKkTBHMUGuKOIIT8AzuX5Qa5eejtGDiOv4N53sk8pi1st5JgK5mI 87ND5FLFy6hKxI1nN5VKULPVKqcsMvIbBifO/XQTXRk7XR6aimg=
    =/0Qh
    -----END PG