Menu

#65 atlas to support ppc64le new archi ABI V2

developer
closed-fixed
None
5
2015-07-30
2014-06-30
mnormand
No

atlas to support ppc64le new archi ABI V2

1 Attachments

Discussion

  • R. Clint Whaley

    R. Clint Whaley - 2014-07-01

    Still looking for the answer to:

    (6) What the heck does this do:
    + #if _CALL_ELF == 2
    + .type ATL_USERMM,@function
    +0: addis 2,12,.TOC.-0b@ha
    + addi 2,2,.TOC.-0b@l
    + .localentry ATL_USERMM, .-ATL_USERMM
    + #endif

     
  • R. Clint Whaley

    R. Clint Whaley - 2014-07-02

    Please post a link to the new ABI you are talking about.

    I also still need an answer to what the above code is actually doing. In particular, I asked in a developer e-mail:

    This ABI requires you to read the TOC, even if the the routine in question does not reference the TOC? The functions you are modifying are all leaf functions. I am confused.

    If setting r2 is necessary for leaf function, is r2 then not a usuable register? Do you have reference to this new ABI, and why do we have a new ABI?

     
  • mnormand

    mnormand - 2014-07-03

    do not understand why my previous post not yet visible :( still wait some hours before to re-submit.

     
  • mnormand

    mnormand - 2014-07-03

    The provided patch is un-complete as still some errors about parameters passing for ABI V2 in ppc asm files of atlas/ATLAS/tune/blas/gemm/CASES/*

     
  • R. Clint Whaley

    R. Clint Whaley - 2014-07-04

    From a quick read of the discussion, all this TOC stuff is unnecessary:

    If local and global entry points coincide, the function may
    expect no particular value in either r12 or r2; this can be
    used by functions that do not need a TOC.

    Since all the functions you've been patching are leaf functions, they shouldn't need the TOC or GOT, so I don't plan on applying any of the TOC stuff in the patches unless you have a reason you think they are needed?

     
    • mnormand

      mnormand - 2014-07-07

      I agree to not apply the TOC stuff.

       
  • mnormand

    mnormand - 2014-07-24

    update the patch

     

    Last edit: mnormand 2014-07-24
  • mnormand

    mnormand - 2014-08-13

    The initial patch of this bug was only partially incorporated in atlas 3.10.2 So I am adding two new patches (atlas.3.10.2-ppc64le_abiv2_step2.patch atlas.3.10.2-ppc64le_abiv2_step3.patch) to be applied on top of atlas 3.10.2 to continue the required changes for ppc64le architecture.

     
  • R. Clint Whaley

    R. Clint Whaley - 2014-08-14

    Yeah, I stopped when I didn't get the answers on my my absurdly abbreviated schedule for 3.10.2 :)

    I'm currently pretty heavily engaged in getting some new stuff going for 3.11.30. Do you have a machine you can test this on right if I do apply all th e patches?

    If so, maybe after 3.11.30 is released, I can talk with you and apply everything in the developer release, and get you to confirm it works. Then, if does, we can apply the partial patches and you can confirm it works in the 3.10 series.

    My guess is it'll be late next week before I clear the decks enough, but I can't be too confident as school is about to begin . . .

    Many thanks,
    Clint

     
    • mnormand

      mnormand - 2014-08-14

      -------- Original Message --------
      Subject: [math-atlas:patches] #65 atlas to support ppc64le new archi ABI V2
      From: R. Clint Whaley rwhaley@users.sf.net
      To: [math-atlas:patches] 65@patches.math-atlas.p.re.sf.net
      Date: 14/08/2014 16:46

      Yeah, I stopped when I didn't get the answers on my my absurdly abbreviated schedule for 3.10.2 :)

      I'm currently pretty heavily engaged in getting some new stuff going for 3.11.30. Do you have a machine you can test this on right if I do apply all th e patches?

      Yes I have a machine on which I already tested the provided two patches on top of 3.10.2 that was sufficient to have make build to complete. But did not tested on main branch because my tests on 3.10.2 are still failing during make check.
      (this is what I summarized in step3 patch header extracted below)

      If so, maybe after 3.11.30 is released, I can talk with you and apply everything in the developer release, and get you to confirm it works. Then, if does, we can apply the partial patches and you can confirm it works in the 3.10 series.

      My guess is it'll be late next week before I clear the decks enough, but I can't be too confident as school is about to begin . . .

      Many thanks,
      Clint

      make check failure and summary extracted from step3 patch header:

      My problem is that I do not have a good understanding of what is done in the two huge pointed files. Is it possible to have a much smaller standalone snippet code that I could build/tried/test to make the porting between PowerPC big-endian to little-endian ?

      --
      Michel Normand

       
  • mnormand

    mnormand - 2014-08-14

    sorry for the bad formatting of previous comment that I sent via email.
    (I hate sourceforge for those formatting features)

     
  • R. Clint Whaley

    R. Clint Whaley - 2014-08-19

    If the TOC stuff is not needed, is the extra:
    + #if _CALL_ELF == 2
    + .type ATL_DecAtomicCount,@function
    + .localentry ATL_DecAtomicCount, .-ATL_DecAtomicCount
    + #endif

    Still needed as well? Reason I ask is that it doesn't look like you added that junk to the probe_Altivec/VSX funcs, and I don't want to add that crap if isn't necessary.

    Thanks,
    Clint

     
    • mnormand

      mnormand - 2014-08-20

      -------- Original Message --------
      Subject: [math-atlas:patches] #65 atlas to support ppc64le new archi ABI V2
      From: R. Clint Whaley rwhaley@users.sf.net
      To: [math-atlas:patches] 65@patches.math-atlas.p.re.sf.net
      Date: 19/08/2014 23:20

      If the TOC stuff is not needed, is the extra:
      + #if _CALL_ELF == 2
      + .type ATL_DecAtomicCount,@function
      + .localentry ATL_DecAtomicCount, .-ATL_DecAtomicCount
      + #endif

      Still needed as well? Reason I ask is that it doesn't look like you added that junk to the probe_Altivec/VSX funcs, and I don't want to add that crap if isn't necessary.

      No it is not needed.

      Thanks,
      Clint

       
      • R. Clint Whaley

        R. Clint Whaley - 2014-08-20

        OK, I think that means I have applied all your patches, so when I release 3.11.30, you can verify it works, and send me fixes from there, and your stuff will be fixed for the developer.

        We'll still have to complete the 3.10 stuff, but there's no hurry on that, since I have no idea when the next stable will be.

        Once we've got 3.11 confirmed as working, maybe I can get you to give me new 3.10 patches with everything we've figured out as unnecessary excluded, to make the stable patching simpler.

        Thanks,
        Clint

         
  • R. Clint Whaley

    R. Clint Whaley - 2014-08-19

    I have applied all the original patch to the developer basefiles, except the above .type/.localentry stuff in prior mesg. Will await for conf that it is required before doing that.

    Everything else should be there for 3.11.30.

     
  • R. Clint Whaley

    R. Clint Whaley - 2014-08-23

    OK, can you see if 3.11.30 works for you? If not, send me the patches to fix.

    Thanks,
    Clint

     
    • mnormand

      mnormand - 2014-08-28

      I tested the atlas.3.11.30 and found it has two following missing patches I am adding in attachments:
      atlas.3.11.30-correction_commit_e14cb31.patch
      atlas.3.11.30-ppc64le_abiv2_step3.patch

       
  • R. Clint Whaley

    R. Clint Whaley - 2014-08-23
    • status: open --> open-accepted
    • assigned_to: R. Clint Whaley
     
  • R. Clint Whaley

    R. Clint Whaley - 2015-07-30
    • status: open-accepted --> closed-fixed
     
  • R. Clint Whaley

    R. Clint Whaley - 2015-07-30

    I believe everything should be working for this in 3.11.35. Please open a new tracker if something is missing there.

    Thanks!
    Clint

     

Log in to post a comment.