Hardware Transactional Memory, the end?

By: anon2 (anon.delete@this.anon.com), August 23, 2022 8:50 pm
Room: Moderated Discussions
Andrey (andrey.semashev.delete@this.gmail.com) on August 23, 2022 6:01 pm wrote:
> --- (---.delete@this.redheron.com) on August 23, 2022 10:00 am wrote:
> > Andrey (andrey.semashev.delete@this.gmail.com) on August 23, 2022 6:29 am wrote:
> > > --- (---.delete@this.redheron.com) on August 21, 2022 9:27 pm wrote:
> > > > Andrey (andrey.semashev.delete@this.gmail.com) on August 21, 2022 6:39 pm wrote:
> > > > >
> > > > > The key advantage of transactional memory is atomicity of *multiple* memory accesses,
> > > > > at potentially distant memory locations. No predictor will give you that.
> > > >
> > > > I'm no expert, but this seems to me too strong a claim.
> > > > I make no claims as to whether it's a good use of transistors, but I could imagine a two
> > > > level system that starts by detecting patterns of atomics that occur close to each in
> > > > time, and that that then predicts an overall outcome, all held as speculative in the same
> > > > way as HTM (ie vie special "don't propagate this" bits in each cache line)...
> > >
> > > Architecturally, two atomic operations are distinct and are not atomic in combination. This is regardless
> > > of whether the particular hardware manages to somehow commit the two operations as one atomic operation.
> > > Being architecturally atomic is what is important here because that is what software relies on.
> > >
> > > HTM, on the other hand, is architectural (i.e. not speculative). That is, the architecture guarantees,
> > > within set limits, that a certain sequence of operations will execute atomically.
> >
> > I understand this Andrey, but you apparently did not understand the distinction I was trying to make.
> > Is what people want from HTM
> > - PERFORMANCE (which can be achieved, I think, by speculation, as I suggested) OR
> > - EASIER writing of code (which can be achieved, I think, by language+compiler, with
> > any theoretical performance that's left on the table being made up by speculation).
> >
> > HTM is a means to an end, it's not an end in itself. But is that end
> > - performance OR
> > - making it easier to write reliable parallel code
> > ?
>
> All other things being equal, HTM does not make it easier to write code compared to locking. In fact,
> it makes it more complex, at least in case of Intel TSX, as you have to implement two code paths, one
> of them involving a lock.

It was absolutely *supposed* to make writing code easier. This was the entire promise of the thing from the beginning. The theory was that the fallback path was supposed to be when you had a true conflict, so a highly scalable fallback path would not be required (because you were conflicting the same data anyway). In theory.

In practice the fallback path hits in lots of cases when there is no true conflict, and even in the case of true conflicts when you do hit the fallback path, the problem is all the other concurrent work that was not involved in the conflicts now all causes a pile up in the slow path and you get stuck in a negative feedback loop. I never understood how this wasn't a blindingly obvious problem (particularly for lock elision).

So you have to implement a scalable fallback. And then the transactional path becomes little use (at best, and very expensive wasted work at worst).
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Hardware Transactional Memory, the end?rwessel2022/08/20 06:50 PM
  Hardware Transactional Memory, the end?Kara2022/08/20 11:04 PM
    Hardware Transactional Memory, the end?dmcq2022/08/21 11:36 AM
      Hardware Transactional Memory, the end?rwessel2022/08/21 12:17 PM
        Hardware Transactional Memory, the end?---2022/08/21 01:26 PM
          Hardware Transactional Memory, the end?Andrey2022/08/21 06:39 PM
            Hardware Transactional Memory, the end?---2022/08/21 09:27 PM
              Hardware Transactional Memory, the end?Andrey2022/08/23 06:29 AM
                Hardware Transactional Memory, the end?---2022/08/23 10:00 AM
                  Hardware Transactional Memory, the end?iz2022/08/23 01:20 PM
                    Hardware Transactional Memory, the end?anonymou52022/08/23 02:57 PM
                  Hardware Transactional Memory, the end?Andrey2022/08/23 06:01 PM
                    Hardware Transactional Memory, the end?Anon2022/08/23 06:28 PM
                      Hardware Transactional Memory, the end?Andrey2022/08/24 04:10 AM
                        Hardware Transactional Memory, the end?Anon2022/08/24 08:50 AM
                          Hardware Transactional Memory, the end?rwessel2022/08/24 09:35 AM
                          Hardware Transactional Memory, the end?Etienne2022/08/25 01:54 AM
                            Hardware Transactional Memory, the end?Anon2022/08/25 05:25 AM
                              Hardware Transactional Memory, the end?Etienne2022/08/25 06:24 AM
                                Hardware Transactional Memory, the end?rwessel2022/08/25 08:16 AM
                                  Hardware Transactional Memory, the end?Linus Torvalds2022/08/25 10:16 AM
                                    Hardware Transactional Memory, the end?rwessel2022/08/25 11:00 AM
                                  Hardware Transactional Memory, the end?Etienne2022/08/26 12:54 PM
                    Hardware Transactional Memory, the end?anon22022/08/23 08:50 PM
                      Hardware Transactional Memory, the end?Andrey2022/08/24 03:54 AM
                        Hardware Transactional Memory, the end?anon22022/08/24 04:54 AM
                      Hardware Transactional Memory, the end?Simon Farnsworth2022/08/24 03:58 AM
                        Hardware Transactional Memory, the end?Konrad Schwarz2022/08/28 06:12 AM
          Hardware Transactional Memory, the end?Linus Torvalds2022/08/21 06:58 PM
            Hardware Transactional Memory, the end?rwessel2022/08/21 08:02 PM
              Hardware Transactional Memory, the end?anon22022/08/21 09:31 PM
                Hardware Transactional Memory, the end?dmcq2022/08/22 07:14 AM
                  Hardware Transactional Memory, the end?anon22022/08/23 12:15 AM
                    Hardware Transactional Memory, the end?dmcq2022/08/24 03:50 AM
                      Hardware Transactional Memory, the end?Linus Torvalds2022/08/24 11:56 AM
                        Hardware Transactional Memory, the end?dmcq2022/08/25 04:39 PM
            Hardware Transactional Memory, the end?---2022/08/21 09:33 PM
              Hardware Transactional Memory, the end?Linus Torvalds2022/08/22 11:32 AM
                Hardware Transactional Memory, the end?Anon2022/08/22 12:35 PM
                  Hardware Transactional Memory, the end?rwessel2022/08/22 04:47 PM
                Hardware Transactional Memory, the end?gpd2022/08/26 03:07 AM
                  Hardware Transactional Memory, the end?Michael S2022/08/26 03:46 AM
                    Hardware Transactional Memory, the end?Linus Torvalds2022/08/26 11:01 AM
                      Hardware Transactional Memory, the end?rwessel2022/08/26 06:08 PM
                        Hardware Transactional Memory, the end?anonymou52022/08/26 07:52 PM
  Hardware Transactional Memory, the end?zArchJon2022/08/24 10:12 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell tangerine? 🍊