You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An operation X precedes an operation Y in base causality order if:
X precedes Y in program order, or
X synchronizes with Y, or
For some operation Z,
a. X precedes Z in program order and Z precedes Y in base causality order, or
b. X precedes Z in base causality order and Z precedes Y in program order, or
c. X precedes Z in base causality order and Z precedes Y in base causality order.
It seems to me that the 3.a and 3.b clauses are redundant. They both could be covered by the combination of 1, 2 and 3.c.
Then I read the ASPLOS_2019 PTX Memory Model paper and found a different definition (almost same except the first clause of program order)
An operation X precedes an operation Y in base causality order if:
X precedes Y in program order, or
X synchronizes with Y, or
For some operation Z,
a. X precedes Z in program order and Z precedes Y in base causality order, or
b. X precedes Z in base causality order and Z precedes Y in program order, or
c. X precedes Z in base causality order and Z precedes Y in base causality order.
Finally, I went over the CUDA toolkit archive and found this change happened between PTX ISA 7.4 and PTX ISA 7.5.
So my question are
Is the current definition of base causality order redundant?
Why the definition changed in PTX ISA 7.5?
My appreciation in advance for any answers or clues!
Update Apr. 1.
I found the answer to the 2nd question, the change happend on the introduce of proxy. But my 1st question remains unanswered.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I was reading the PTX ISA and got confused by the definition of base causality order.
It seems to me that the 3.a and 3.b clauses are redundant. They both could be covered by the combination of 1, 2 and 3.c.
Then I read the ASPLOS_2019 PTX Memory Model paper and found a different definition (almost same except the first clause of program order)
Finally, I went over the CUDA toolkit archive and found this change happened between PTX ISA 7.4 and PTX ISA 7.5.
So my question are
My appreciation in advance for any answers or clues!
Update Apr. 1.
I found the answer to the 2nd question, the change happend on the introduce of proxy. But my 1st question remains unanswered.
Beta Was this translation helpful? Give feedback.
All reactions