Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > sci.logic > #345657 > unrolled thread
| Started by | Mild Shock <janburse@fastmail.fm> |
|---|---|
| First post | 2026-04-24 02:46 +0200 |
| Last post | 2026-07-22 18:20 -0700 |
| Articles | 7 on this page of 87 — 4 participants |
Back to article view | Back to sci.logic
Paul Tarau versus Mr. Taskmanager, who would win? [A PDP-11 Humunkulus from 1979] Mild Shock <janburse@fastmail.fm> - 2026-04-24 02:46 +0200
AI dooms day escape: Güttinger Wald (Re: Paul Tarau versus Mr. Taskmanager, who would win?) Mild Shock <janburse@fastmail.fm> - 2026-04-25 14:06 +0200
Elmos Fascist Dreams of a 365 Prolog (Was: AI dooms day escape: Güttinger Wald) Mild Shock <janburse@fastmail.fm> - 2026-05-09 12:52 +0200
Even the Buddos are clueless [Did Tarau see Liliputians?] (Re: Elmos Fascist Dreams of a 365 Prolog) Mild Shock <janburse@fastmail.fm> - 2026-05-09 15:19 +0200
Halfing the AI Laptop Budget: Ne-Meow sold out! (Re: Even the Buddos are clueless [Did Tarau see Liliputians?]) Mild Shock <janburse@fastmail.fm> - 2026-05-10 09:09 +0200
Prolog Expert Ginis (PEGs) on a Keychain (Re: AI dooms day escape: Güttinger Wald) Mild Shock <janburse@fastmail.fm> - 2026-06-20 13:04 +0800
Chatbot Classified as a Weapon (Re: Prolog Expert Ginis (PEGs) on a Keychain) Mild Shock <janburse@fastmail.fm> - 2026-06-21 05:39 +0800
Introduction to AI Accelerator Prolog [π-WAM of Dogelog] (Re: Prolog Expert Ginis (PEGs) on a Keychain) Mild Shock <janburse@fastmail.fm> - 2026-07-17 11:16 +0200
Not praying to the god of lambda calculus [π beats α] (Re: Introduction to AI Accelerator Prolog [π-WAM of Dogelog]) Mild Shock <janburse@fastmail.fm> - 2026-07-17 11:17 +0200
Re: Introduction to AI Accelerator Prolog [π-WAM of Dogelog] (Re: Prolog Expert Ginis (PEGs) on a Keychain) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-17 13:03 -0700
pi in pi-WAM refers to pi-calculus (Was: Introduction to AI Accelerator Prolog [π-WAM of Dogelog] ) Mild Shock <janburse@fastmail.fm> - 2026-07-18 01:16 +0200
Milners fickle() in pi-WAM [For fun and profit] (Re: pi in pi-WAM refers to pi-calculus) Mild Shock <janburse@fastmail.fm> - 2026-07-18 01:50 +0200
Re: Milners fickle() in pi-WAM [For fun and profit] (Re: pi in pi-WAM refers to pi-calculus) Ross Finlayson <ross.a.finlayson@gmail.com> - 2026-07-18 01:34 -0700
Robin Milners pi calculus is typeless (Was: Milners fickle() in pi-WAM [For fun and profit]) Mild Shock <janburse@fastmail.fm> - 2026-07-18 10:57 +0200
Can the Church Turing hypotheses be refuted? [TLo @ FOM] (Was: Robin Milners pi calculus is typeless) Mild Shock <janburse@fastmail.fm> - 2026-07-18 11:08 +0200
AI Laptops are just strange novel xBoxes (Was: AI dooms day escape: Güttinger Wald) Mild Shock <janburse@fastmail.fm> - 2026-07-08 20:44 +0200
Re: AI Laptops are just strange novel xBoxes (Was: AI dooms day escape: Güttinger Wald) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-08 15:22 -0700
TDR solutions --> work slicing (Was: AI Laptops are just strange novel xBoxes) Mild Shock <janburse@fastmail.fm> - 2026-07-09 09:47 +0200
Thinking of Chris M. Thomasson: From shadertoys to computetoys? (Re: TDR solutions --> work slicing) Mild Shock <janburse@fastmail.fm> - 2026-07-09 09:52 +0200
FYI: Unified Memory Architecture (UMA) (Re: Implementing Gas for a Compute Shader [Avoid TDR]) Mild Shock <janburse@fastmail.fm> - 2026-07-09 19:43 +0200
The Wider von Neumann Neck (Re: FYI: Unified Memory Architecture (UMA)) Mild Shock <janburse@fastmail.fm> - 2026-07-10 07:51 +0200
The new MIMD Warp is the cherry on top (Re: The Wider von Neumann Neck) Mild Shock <janburse@fastmail.fm> - 2026-07-10 08:08 +0200
Dumbwit, just run it on your RTX 5070 trash (Re: The Wider von Neumann Neck) Mild Shock <janburse@fastmail.fm> - 2026-07-10 15:49 +0200
We are still waiting for results! [Confused Dumbwit] (Re: We are waiting Dumbwit: 1 Month, 3 Months, .. [node.js dawn]) Mild Shock <janburse@fastmail.fm> - 2026-07-10 22:45 +0200
404 Brain not Found [GPU saturation] (Re: We are still waiting for results! [Confused Dumbwit]) Mild Shock <janburse@fastmail.fm> - 2026-07-10 23:40 +0200
I nowhere talked about 10GB/s (Re: 404 Brain not Found [GPU saturation]) Mild Shock <janburse@fastmail.fm> - 2026-07-10 23:41 +0200
I nowhere said something about AI (Re: I nowhere talked about 10GB/s) Mild Shock <janburse@fastmail.fm> - 2026-07-10 23:52 +0200
What do you not understand in "budget"? (Re: I nowhere said something about AI) Mild Shock <janburse@fastmail.fm> - 2026-07-11 00:08 +0200
SWI makes only MLips not GLips (Re: What do you not understand in "budget"?) Mild Shock <janburse@fastmail.fm> - 2026-07-11 00:09 +0200
micro penis got hurt by "budget" (Re: SWI makes only MLips not GLips) Mild Shock <janburse@fastmail.fm> - 2026-07-12 19:20 +0200
Micro Penis Nemesis: Shoe String Budget π-WAM (Was: Paul Tarau versus Mr. Taskmanager, who would win?) Mild Shock <janburse@fastmail.fm> - 2026-07-12 19:26 +0200
micro penis struggels with mobile grade GPU concept [Redmi Note 14 Pro+ Results] (Re: Micro Penis Nemesis: Shoe String Budget π-WAM) Mild Shock <janburse@fastmail.fm> - 2026-07-12 21:32 +0200
Micro Penis Existential Crisis: DeepSeek on a Mobile GPU (Re: micro penis struggels with mobile grade GPU concept [Redmi Note 14 Pro+ Results]) Mild Shock <janburse@fastmail.fm> - 2026-07-12 21:47 +0200
Micro Penis is worse than Sleepy Joe (Re: Micro Penis Existential Crisis: DeepSeek on a Mobile GPU) Mild Shock <janburse@fastmail.fm> - 2026-07-12 23:00 +0200
Maybe change your pampers? (Was: Micro Penis is worse than Sleepy Joe) Mild Shock <janburse@fastmail.fm> - 2026-07-12 23:01 +0200
herpes blister rossy boy is confused (Re: Maybe change your pampers?) Mild Shock <janburse@fastmail.fm> - 2026-07-13 06:54 +0200
nothing gets blocked except your brain [LPDDR5X-RAM] (Re: herpes blister rossy boy is confused) Mild Shock <janburse@fastmail.fm> - 2026-07-13 13:21 +0200
flogging a dead horse PCI VRAM graphic cards (Re: nothing gets blocked except your brain [LPDDR5X-RAM]) Mild Shock <janburse@fastmail.fm> - 2026-07-13 13:52 +0200
GPUs evolved from SIMD to MIMD [NVIDIA Volta 2017] (Re: herpes blister rossy boy is confused) Mild Shock <janburse@fastmail.fm> - 2026-07-20 17:11 +0200
A.D.I.D.A.S. Gopnik lost his screws (Re: GPUs evolved from SIMD to MIMD [NVIDIA Volta 2017]) Mild Shock <janburse@fastmail.fm> - 2026-07-20 19:58 +0200
I'm a spinner, I'm a sinner [Dmitry Vyukov for pi-WAM] (Re: Paul Tarau versus Mr. Taskmanager, who would win? [A PDP-11 Humunkulus from 1979] Mild Shock <janburse@fastmail.fm> - 2026-07-19 11:55 +0200
Gemini, DeepSeek, OpenAI all know Dmitriy V'jukov (Re: I'm a spinner, I'm a sinner [Dmitry Vyukov for pi-WAM]) Mild Shock <janburse@fastmail.fm> - 2026-07-20 08:33 +0200
The Cache Identity Crisis by Micro Penis (Re: Gemini, DeepSeek, OpenAI all know Dmitriy V'jukov) Mild Shock <janburse@fastmail.fm> - 2026-07-20 13:54 +0200
Just RTFM the RDNA 3.5 specs! [GPU Cache Lines] (Re: The Cache Identity Crisis by Micro Penis) Mild Shock <janburse@fastmail.fm> - 2026-07-20 14:10 +0200
The large memory tax: ECC RAM (Re: Just RTFM the RDNA 3.5 specs! [GPU Cache Lines]) Mild Shock <janburse@fastmail.fm> - 2026-07-20 14:23 +0200
Re: Just RTFM the RDNA 3.5 specs! [GPU Cache Lines] (Re: The Cache Identity Crisis by Micro Penis) Ross Finlayson <ross.a.finlayson@gmail.com> - 2026-07-20 12:26 -0700
Re: Just RTFM the RDNA 3.5 specs! [GPU Cache Lines] (Re: The Cache Identity Crisis by Micro Penis) R Kym Horsell <kymhorsell@gmail.com> - 2026-07-20 22:20 +0000
Friendly Reminder: GPU 10x more performant than CPU (Was: Just RTFM the RDNA 3.5 specs! [GPU Cache Lines]) Mild Shock <janburse@fastmail.fm> - 2026-07-21 00:39 +0200
Breaking the CUDA edge in AI by WebGPU (Was: Friendly Reminder: GPU 10x more performant than CPU) Mild Shock <janburse@fastmail.fm> - 2026-07-21 00:56 +0200
Like WebAssembly before it, WebGPU has "escaped" the browser. (Was: Breaking the CUDA edge in AI by WebGPU) Mild Shock <janburse@fastmail.fm> - 2026-07-21 01:05 +0200
If you are paranoid you can use Falco [Agentic AI] (Re: Like WebAssembly before it, WebGPU has "escaped" the browser.) Mild Shock <janburse@fastmail.fm> - 2026-07-21 22:57 +0200
What would an EMACS guru say [Windows Recall] (Re: If you are paranoid you can use Falco [Agentic AI]) Mild Shock <janburse@fastmail.fm> - 2026-07-21 23:35 +0200
Decide what you critique tiny winy penis (Re: What would an EMACS guru say [Windows Recall]) Mild Shock <janburse@fastmail.fm> - 2026-07-22 08:17 +0200
How confused is tiny winy penis? (Was: Decide what you critique tiny winy penis) Mild Shock <janburse@fastmail.fm> - 2026-07-22 08:28 +0200
Maybe change your hobby, become a dog owner? (Was: How confused is tiny winy penis?) Mild Shock <janburse@fastmail.fm> - 2026-07-22 09:37 +0200
Even dogs know Switzerland != Germany [Syphilis Brain Micro Penis] (Re: Decide what you critique tiny winy penis ) Mild Shock <janburse@fastmail.fm> - 2026-07-22 11:19 +0200
node.js has also Worker isolation , headless (Was: Even dogs know Switzerland != Germany [Syphilis Brain Micro Penis]) Mild Shock <janburse@fastmail.fm> - 2026-07-22 11:29 +0200
Abyss hobby interpretation vs. professional understanding [Keep up with the Kardashians] (Re: node.js has also Worker isolation , headless) Mild Shock <janburse@fastmail.fm> - 2026-07-22 11:38 +0200
Play stupid games, win classic Usenet prizes [CCCP Troll] (Re: Abyss hobby interpretation vs. professional understanding [Keep up with the Kardashians]) Mild Shock <janburse@fastmail.fm> - 2026-07-22 12:16 +0200
Glue Sniffing 5-Year Old Moron [CCCP Troll] (Was: Play stupid games, win classic Usenet prizes [CCCP Troll]) Mild Shock <janburse@fastmail.fm> - 2026-07-22 14:29 +0200
My Swift Go 16 AI has no IMEI, are you nuts? (Re: Even dogs know Switzerland != Germany [Syphilis Brain Micro Penis]) Mild Shock <janburse@fastmail.fm> - 2026-07-22 14:15 +0200
Same nickname and email, could post faster [5 year old moron] (Re: My Swift Go 16 AI has no IMEI, are you nuts? ) Mild Shock <janburse@fastmail.fm> - 2026-07-22 14:25 +0200
I have nothing to hide, you can find me in search.ch (Re: My Swift Go 16 AI has no IMEI, are you nuts?) Mild Shock <janburse@fastmail.fm> - 2026-07-22 14:41 +0200
Where did I confirm German via .ch, you are more than nuts! (Re: I have nothing to hide, you can find me in search.ch) Mild Shock <janburse@fastmail.fm> - 2026-07-22 14:48 +0200
Ask a Ukrainian Neighbour to do Detective [CCCP Troll] (Re: Where did I confirm German via .ch, you are more than nuts! ) Mild Shock <janburse@fastmail.fm> - 2026-07-22 14:51 +0200
Re: Just RTFM the RDNA 3.5 specs! [GPU Cache Lines] (Re: The Cache Identity Crisis by Micro Penis) Ross Finlayson <ross.a.finlayson@gmail.com> - 2026-07-20 21:36 -0700
rossy boy is going paranoid (Was: Just RTFM the RDNA 3.5 specs! [GPU Cache Lines]) Mild Shock <janburse@fastmail.fm> - 2026-07-21 09:01 +0200
Re: rossy boy is going paranoid (Was: Just RTFM the RDNA 3.5 specs! [GPU Cache Lines]) Ross Finlayson <ross.a.finlayson@gmail.com> - 2026-07-21 00:56 -0700
L1,..,Ln caches are located on the CPU AND on the GPU (Was: The Cache Identity Crisis by Micro Penis( Mild Shock <janburse@fastmail.fm> - 2026-07-20 19:35 +0200
GPU Cache Hierarchy: Understanding L1, L2, and VRAM (Was: L1,..,Ln caches are located on the CPU AND on the GPU) Mild Shock <janburse@fastmail.fm> - 2026-07-20 19:40 +0200
Well thats good, co-location, onto the same processor die (Re: GPU Cache Hierarchy: Understanding L1, L2, and VRAM (Was: L1,..,Ln caches are located on the CPU AND on the GPU) Mild Shock <janburse@fastmail.fm> - 2026-07-20 22:02 +0200
Where is micro penis mental error? (Re: Well thats good, co-location, onto the same processor die (Re: GPU Cache Hierarchy: Understanding L1, L2, and VRAM (Was: L1,..,Ln caches are located on the CPU AND on the GPU) Mild Shock <janburse@fastmail.fm> - 2026-07-20 22:07 +0200
I didn't find Futex in WebGPU / WGSL (Re: Gemini, DeepSeek, OpenAI all know Dmitriy V'jukov) Mild Shock <janburse@fastmail.fm> - 2026-07-20 23:26 +0200
There is no imageAtomicAdd in WGSL (Re: I didn't find Futex in WebGPU / WGSL) Mild Shock <janburse@fastmail.fm> - 2026-07-21 00:15 +0200
OpenGL is dead. Apple said bye bye / Wayland Compositor (Re: There is no imageAtomicAdd in WGSL) Mild Shock <janburse@fastmail.fm> - 2026-07-21 00:26 +0200
Flogging a Dead Horse, OpenGL is EOL (Re: There is no imageAtomicAdd in WGSL) Mild Shock <janburse@fastmail.fm> - 2026-07-21 01:39 +0200
imageAtomicAdd trivial, Dmitry Vyukov requires capacity (Re: Flogging a Dead Horse, OpenGL is EOL) Mild Shock <janburse@fastmail.fm> - 2026-07-21 01:40 +0200
capacity = 2^n for some n / systolic system (Re: imageAtomicAdd trivial, Dmitry Vyukov requires capacity) Mild Shock <janburse@fastmail.fm> - 2026-07-21 01:41 +0200
Source of the benchmark for DmitryVyukov (Was: capacity = 2^n for some n / systolic system) Mild Shock <janburse@fastmail.fm> - 2026-07-21 01:44 +0200
Re: There is no imageAtomicAdd in WGSL (Re: I didn't find Futex in WebGPU / WGSL) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-20 16:59 -0700
I never used OpenGL Version 4.2 and later (Was: There is no imageAtomicAdd in WGSL) Mild Shock <janburse@fastmail.fm> - 2026-07-21 08:47 +0200
Because of MIMD you have to reassess algorithms (Re: I never used OpenGL Version 4.2 and later) Mild Shock <janburse@fastmail.fm> - 2026-07-21 09:02 +0200
Re: Because of MIMD you have to reassess algorithms (Re: I never used OpenGL Version 4.2 and later) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-22 13:34 -0700
Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) Mild Shock <janburse@fastmail.fm> - 2026-07-23 00:09 +0200
Re: Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) Mild Shock <janburse@fastmail.fm> - 2026-07-23 00:53 +0200
Re: Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-22 18:00 -0700
Re: Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-07-22 18:20 -0700
Page 5 of 5 — ← Prev page 1 2 3 4 [5]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-07-21 08:47 +0200 |
| Subject | I never used OpenGL Version 4.2 and later (Was: There is no imageAtomicAdd in WGSL) |
| Message-ID | <113n4m3$5oih$1@solani.org> |
| In reply to | #348172 |
Hi, I went to holdays in June 2026, had an idea for a pi-WAM based on a Hack, the later is described here: Emulating π-WAM in Dogelog Player https://medium.com/2989/de9cd29c7d37 The Elements of Computing Systems https://mitpress.mit.edu/9780262539807 In July 2026 I did the CPU and GPU experiments, moving from emulator to native executor based in realizing Hack as a concrete virtual machine, and not as an abstract machine emulated in Prolog. The GPU experiments were done in WebGPU / WGSL. So no, I never used OpenGL Version 4.2 and later. Also the name imageAtomicAdd indicates that it imageAtomicAdd is rather from a render shader, while my GPU experiment uses a compute shader. Es specially I need GPU compute shaders, which are not executed in lock step, but rather have indepdendent thread state, also known as MIMD. "In computing, multiple instruction, multiple data (MIMD) is a technique employed to achieve parallelism. " https://en.wikipedia.org/wiki/Multiple_instruction,_multiple_data MIMID showed up 2017 with NVIDIA Volta cards. But is now realized by Intel Arc, Snapdragon Adreno and AMD RDNA as well. Bye Chris M. Thomasson schrieb: > On 7/20/2026 3:15 PM, Mild Shock wrote: > [...] > > Have you ever used imageAtomicAdd before? >
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-07-21 09:02 +0200 |
| Subject | Because of MIMD you have to reassess algorithms (Re: I never used OpenGL Version 4.2 and later) |
| Message-ID | <113n5j3$5ouq$3@solani.org> |
| In reply to | #348174 |
Hi, Because of MIMD you have to reassess algorithms. A spin loop which could really hurt non-MIMD GPUs, might less hurt a MIMD GPU. Basically you have to reassess algorithms. Be very exact whether your claims relates to non-MIMD or to MIMD. You can toy around with WebGL, mainly made for non-MIMD, here: https://www.shadertoy.com/ and with WegGPU, mainly made for MIMD, here: https://compute.toys/ The compute toys page, supports two shader languages, WGSL and Slang. I made my GPU experiments only with WGSL. So I don't know Slang either. Things I don't know in the GPU world are: - OpenGL 4.2 and later - Slang https://shader-slang.org/ - CUDA https://de.wikipedia.org/wiki/CUDA Things I have meanwhile hands on, and which I plan to integrate into library(edge/brainfog): - WGSL https://webgpufundamentals.org/ Bye Mild Shock schrieb: > Hi, > > I went to holdays in June 2026, had an idea for > a pi-WAM based on a Hack, the later is described here: > > Emulating π-WAM in Dogelog Player > https://medium.com/2989/de9cd29c7d37 > > The Elements of Computing Systems > https://mitpress.mit.edu/9780262539807 > > In July 2026 I did the CPU and GPU experiments, > moving from emulator to native executor based in > realizing Hack as a concrete virtual machine, > > and not as an abstract machine emulated in Prolog. > The GPU experiments were done in WebGPU / WGSL. > So no, I never used OpenGL Version 4.2 and later. > > Also the name imageAtomicAdd indicates that it > imageAtomicAdd is rather from a render shader, > while my GPU experiment uses a compute shader. > > Es specially I need GPU compute shaders, which > are not executed in lock step, but rather have > indepdendent thread state, also known as MIMD. > > "In computing, multiple instruction, multiple > data (MIMD) is a technique employed to > achieve parallelism. " > https://en.wikipedia.org/wiki/Multiple_instruction,_multiple_data > > MIMID showed up 2017 with NVIDIA Volta cards. > But is now realized by Intel Arc, Snapdragon Adreno > and AMD RDNA as well. > > Bye > > Chris M. Thomasson schrieb: >> On 7/20/2026 3:15 PM, Mild Shock wrote: >> [...] >> >> Have you ever used imageAtomicAdd before? >> >
[toc] | [prev] | [next] | [standalone]
| From | "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> |
|---|---|
| Date | 2026-07-22 13:34 -0700 |
| Subject | Re: Because of MIMD you have to reassess algorithms (Re: I never used OpenGL Version 4.2 and later) |
| Message-ID | <113r9gn$396f7$4@dont-email.me> |
| In reply to | #348176 |
On 7/21/2026 12:02 AM, Mild Shock wrote: > Hi, > > Because of MIMD you have to reassess algorithms. > A spin loop which could really hurt non-MIMD > GPUs, might less hurt a MIMD GPU. [...] Huh? atomic fetch-add has no looping. compare LOCK CMPXCHG with LOCK XADD on x86.
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-07-23 00:09 +0200 |
| Subject | Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) |
| Message-ID | <113rf37$846i$1@solani.org> |
| In reply to | #348208 |
Hi,
CAS and XADD have no looping, they
are atomic operations, that take some
time but basically have some outcome
with some ACID property and a result
value. What loops is the ADT, the Abstract
Data Type that you implement. Respectively
the client that uses the Abstract Data Type.
In your case you added the loop inside the
Abstract Data Type or lower level aggregate
code of a higher level operation:
Chris M. Thomasson wrote:
void producer(double state) {
uint32_t ver = XADD(&head, 1);
cell& c = cells[ver & (N - 1)];
while (LOAD(&c.ver) != ver) backoff(); /** Looping **/
c.state = state;
STORE(&c.ver, ver + 1);
}
https://groups.google.com/g/lock-free/c/acjQ3-89abE/m/a6-Di0GZsyEJ
In my case I added the loop during the client
usage of the ADT:
From: Mild Shock <janburse@fastmail.fm>
Subject: Source of the benchmark for DmitryVyukov
Date: Tue, 21 Jul 2026 01:44:21 +0200
private static void producer(Queue q) {
for (int i = 0; i < WORK; i++) {
Integer val = Integer.valueOf(i);
while (!enqueue(q, val)) ; /** Looping **/
}
}
Do you see the two loops, in your C code
and in my Java code? They are marked with a
comment /** Looping **/ .
You see them, don't you? But I don't know
exactly what backoff() does. Sometimes loops
are spurious yield loops, required because
an ADT cannot gurantee that every yield
implies a certain condition. This is for
example already found in the intrinsinc
monitor of Java, the wait(). You might consult
Doug Lea about the matter and how idiomatic
Java code looks like dealing with
spurious yields.
Bye
Chris M. Thomasson schrieb:
> On 7/21/2026 12:02 AM, Mild Shock wrote:
>> Hi,
>>
>> Because of MIMD you have to reassess algorithms.
>> A spin loop which could really hurt non-MIMD
>> GPUs, might less hurt a MIMD GPU.
> [...]
>
> Huh? atomic fetch-add has no looping. compare LOCK CMPXCHG with LOCK
> XADD on x86.
>
[toc] | [prev] | [next] | [standalone]
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Date | 2026-07-23 00:53 +0200 |
| Subject | Re: Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) |
| Message-ID | <113rhkp$85a4$2@solani.org> |
| In reply to | #348209 |
Hi,
Your father is regreting not using a
contraceptive. Now there is just one more
moron walking earth, and that moron
is you Lane W alias micro penis.
Bye
Lane W schrieb:
> Mild Shock wrote:
>> Hi,
>>
>> CAS and XADD have no looping, they
>> are atomic operations, that take some
>> time but basically have some outcome
>
> My father says C++ reminds him of an abortion.
Mild Shock schrieb:
> Hi,
>
> CAS and XADD have no looping, they
> are atomic operations, that take some
> time but basically have some outcome
>
> with some ACID property and a result
> value. What loops is the ADT, the Abstract
> Data Type that you implement. Respectively
>
> the client that uses the Abstract Data Type.
> In your case you added the loop inside the
> Abstract Data Type or lower level aggregate
>
> code of a higher level operation:
>
> Chris M. Thomasson wrote:
> void producer(double state) {
> uint32_t ver = XADD(&head, 1);
> cell& c = cells[ver & (N - 1)];
> while (LOAD(&c.ver) != ver) backoff(); /** Looping **/
> c.state = state;
> STORE(&c.ver, ver + 1);
> }
> https://groups.google.com/g/lock-free/c/acjQ3-89abE/m/a6-Di0GZsyEJ
>
> In my case I added the loop during the client
> usage of the ADT:
>
> From: Mild Shock <janburse@fastmail.fm>
> Subject: Source of the benchmark for DmitryVyukov
> Date: Tue, 21 Jul 2026 01:44:21 +0200
>
> private static void producer(Queue q) {
> for (int i = 0; i < WORK; i++) {
> Integer val = Integer.valueOf(i);
> while (!enqueue(q, val)) ; /** Looping **/
> }
> }
>
> Do you see the two loops, in your C code
> and in my Java code? They are marked with a
> comment /** Looping **/ .
>
> You see them, don't you? But I don't know
> exactly what backoff() does. Sometimes loops
> are spurious yield loops, required because
>
> an ADT cannot gurantee that every yield
> implies a certain condition. This is for
> example already found in the intrinsinc
>
> monitor of Java, the wait(). You might consult
> Doug Lea about the matter and how idiomatic
> Java code looks like dealing with
>
> spurious yields.
>
> Bye
>
> Chris M. Thomasson schrieb:
>> On 7/21/2026 12:02 AM, Mild Shock wrote:
>>> Hi,
>>>
>>> Because of MIMD you have to reassess algorithms.
>>> A spin loop which could really hurt non-MIMD
>>> GPUs, might less hurt a MIMD GPU.
>> [...]
>>
>> Huh? atomic fetch-add has no looping. compare LOCK CMPXCHG with LOCK
>> XADD on x86.
>>
>
[toc] | [prev] | [next] | [standalone]
| From | "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> |
|---|---|
| Date | 2026-07-22 18:00 -0700 |
| Subject | Re: Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) |
| Message-ID | <113rp41$3e6dt$1@dont-email.me> |
| In reply to | #348209 |
On 7/22/2026 3:09 PM, Mild Shock wrote:
> Hi,
>
> CAS and XADD have no looping, they
> are atomic operations, that take some
> time but basically have some outcome
>
> with some ACID property and a result
> value. What loops is the ADT, the Abstract
> Data Type that you implement. Respectively
>
> the client that uses the Abstract Data Type.
> In your case you added the loop inside the
> Abstract Data Type or lower level aggregate
>
> code of a higher level operation:
>
> Chris M. Thomasson wrote:
> void producer(double state) {
> uint32_t ver = XADD(&head, 1);
> cell& c = cells[ver & (N - 1)];
> while (LOAD(&c.ver) != ver) backoff(); /** Looping **/
> c.state = state;
> STORE(&c.ver, ver + 1);
> }
> https://groups.google.com/g/lock-free/c/acjQ3-89abE/m/a6-Di0GZsyEJ
This was meant to be used in either a backoff, or ideally a futex, or
return the bakery ticket to the user in the need to wait case. Was never
meant to be used in a GPU. Dmitry CAS version can be used, but its still
going to spin on any failed CAS. But, they are very different ways to do
the same thing and they can be mixed and matched. But on the GPU, try to
avoid CAS or anything that has to wait.
My XADD version beats Dmitry's in some work loads, but the fact it that
they can be mixed and matched.
_____________
[from me]
>> > I think it must be possible to combine e.g. CAS-based consumers and
>> > XADD-based producers. This can be beneficial if you expect that
>> > producers usually do not blocks (so you care more about fast-path
>> > performance rather than blocking behavior).
>> AFAICT, my tweak should be 100% compatible with the
>> existing algorithm as-is. IMVHO, it could be a fairly
>> beneficial addition to the existing API. It opens
>> up a new way to think about handling contention wrt
>> using the queue as a whole.
[from my friend]
Good point.
I guess single XADD for MPMC if far superior than most algorithms out
there, and is basically the best one can get for a centralized queue.
I see people still implement MS node-based queue with PDR, and that's
2 CAS loops + indirections + memory allocations + PDR acquire/release
overheads.... veeeeeery slow :)
_______________
From this post:
https://groups.google.com/g/lock-free/c/acjQ3-89abE/m/q9j14HPbO3sJ
You need to be careful wrt just using a multi-threaded lock-free algo in
a compute shader. Some are just not made for it.
Why do you even need a mpmc queue in your compute shader anyway?
>
> In my case I added the loop during the client
> usage of the ADT:
>
> From: Mild Shock <janburse@fastmail.fm>
> Subject: Source of the benchmark for DmitryVyukov
> Date: Tue, 21 Jul 2026 01:44:21 +0200
>
> private static void producer(Queue q) {
> for (int i = 0; i < WORK; i++) {
> Integer val = Integer.valueOf(i);
> while (!enqueue(q, val)) ; /** Looping **/
> }
> }
>
> Do you see the two loops, in your C code
> and in my Java code? They are marked with a
> comment /** Looping **/ .
>
> You see them, don't you? But I don't know
> exactly what backoff() does. Sometimes loops
> are spurious yield loops, required because
>
> an ADT cannot gurantee that every yield
> implies a certain condition. This is for
> example already found in the intrinsinc
>
> monitor of Java, the wait(). You might consult
> Doug Lea about the matter and how idiomatic
> Java code looks like dealing with
>
> spurious yields.
>
> Bye
>
> Chris M. Thomasson schrieb:
>> On 7/21/2026 12:02 AM, Mild Shock wrote:
>>> Hi,
>>>
>>> Because of MIMD you have to reassess algorithms.
>>> A spin loop which could really hurt non-MIMD
>>> GPUs, might less hurt a MIMD GPU.
>> [...]
>>
>> Huh? atomic fetch-add has no looping. compare LOCK CMPXCHG with LOCK
>> XADD on x86.
>>
>
[toc] | [prev] | [next] | [standalone]
| From | "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> |
|---|---|
| Date | 2026-07-22 18:20 -0700 |
| Subject | Re: Do you see the loops, in C code and in Java code? /** Looping **/ (Was: Because of MIMD you have to reassess algorithms) |
| Message-ID | <113rq9e$3egn4$1@dont-email.me> |
| In reply to | #348212 |
On 7/22/2026 6:00 PM, Chris M. Thomasson wrote:
> On 7/22/2026 3:09 PM, Mild Shock wrote:
>> Hi,
>>
>> CAS and XADD have no looping, they
>> are atomic operations, that take some
>> time but basically have some outcome
>>
>> with some ACID property and a result
>> value. What loops is the ADT, the Abstract
>> Data Type that you implement. Respectively
>>
>> the client that uses the Abstract Data Type.
>> In your case you added the loop inside the
>> Abstract Data Type or lower level aggregate
>>
>> code of a higher level operation:
>>
>> Chris M. Thomasson wrote:
>> void producer(double state) {
>> uint32_t ver = XADD(&head, 1);
>> cell& c = cells[ver & (N - 1)];
>> while (LOAD(&c.ver) != ver) backoff(); /** Looping **/
>> c.state = state;
>> STORE(&c.ver, ver + 1);
>> }
>> https://groups.google.com/g/lock-free/c/acjQ3-89abE/m/a6-Di0GZsyEJ
>
> This was meant to be used in either a backoff, or ideally a futex, or
> return the bakery ticket to the user in the need to wait case. Was never
> meant to be used in a GPU. Dmitry CAS version can be used, but its still
> going to spin on any failed CAS. But, they are very different ways to do
> the same thing and they can be mixed and matched. But on the GPU, try to
> avoid CAS or anything that has to wait.
>
> My XADD version beats Dmitry's in some work loads, but the fact it that
> they can be mixed and matched.
>
> _____________
> [from me]
> >> > I think it must be possible to combine e.g. CAS-based consumers and
> >> > XADD-based producers. This can be beneficial if you expect that
> >> > producers usually do not blocks (so you care more about fast-path
> >> > performance rather than blocking behavior).
>
> >> AFAICT, my tweak should be 100% compatible with the
> >> existing algorithm as-is. IMVHO, it could be a fairly
> >> beneficial addition to the existing API. It opens
> >> up a new way to think about handling contention wrt
> >> using the queue as a whole.
>
> [from my friend]
> Good point.
> I guess single XADD for MPMC if far superior than most algorithms out
> there, and is basically the best one can get for a centralized queue.
> I see people still implement MS node-based queue with PDR, and that's
> 2 CAS loops + indirections + memory allocations + PDR acquire/release
> overheads.... veeeeeery slow :)
> _______________
>
>
> From this post:
>
> https://groups.google.com/g/lock-free/c/acjQ3-89abE/m/q9j14HPbO3sJ
>
> You need to be careful wrt just using a multi-threaded lock-free algo in
> a compute shader. Some are just not made for it.
>
> Why do you even need a mpmc queue in your compute shader anyway?
>
>
>
>>
>> In my case I added the loop during the client
>> usage of the ADT:
>>
>> From: Mild Shock <janburse@fastmail.fm>
>> Subject: Source of the benchmark for DmitryVyukov
>> Date: Tue, 21 Jul 2026 01:44:21 +0200
>>
>> private static void producer(Queue q) {
>> for (int i = 0; i < WORK; i++) {
>> Integer val = Integer.valueOf(i);
>> while (!enqueue(q, val)) ; /** Looping **/
>> }
>> }
>>
>> Do you see the two loops, in your C code
>> and in my Java code? They are marked with a
>> comment /** Looping **/ .
>>
>> You see them, don't you? But I don't know
>> exactly what backoff() does. Sometimes loops
>> are spurious yield loops, required because[...]
They are bakery algorithms on a bounded buffer. My tweak gets away
without having to use any CAS. If you try to dequeue something and the
queue is empty, you either have to wait for an enqueue, or do something
else. My xadd version is pure ticket based, so a a wait condition can
use futex, backoff, of let the user use that ticker for whatever it
wants to.
[toc] | [prev] | [standalone]
Page 5 of 5 — ← Prev page 1 2 3 4 [5]
Back to top | Article view | sci.logic
csiph-web