Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.prolog > #15606 > unrolled thread

ANN: Dogelog Player 2.2.3 (Introducing π-WAM)

Started byMild Shock <janburse@fastmail.fm>
First post2026-07-07 19:26 +0200
Last post2026-07-25 03:51 +0200
Articles 5 — 1 participant

Back to article view | Back to comp.lang.prolog


Contents

  ANN: Dogelog Player 2.2.3 (Introducing π-WAM) Mild Shock <janburse@fastmail.fm> - 2026-07-07 19:26 +0200
    Dogelog Player: 11.4 Giga Lips with a Budget Laptop (Re: ANN: Dogelog Player 2.2.3 (Introducing π-WAM)) Mild Shock <janburse@fastmail.fm> - 2026-07-08 18:39 +0200
      Parallel π-WAM: 1.7 Giga Lips on a CPU (Was: Dogelog Player: 11.4 Giga Lips with a Budget Laptop) Mild Shock <janburse@fastmail.fm> - 2026-07-15 18:08 +0200
        Parallel π-WAM: JavaScript Workers as CPU Backend (Was: Parallel π-WAM: 1.7 Giga Lips on a CPU) Mild Shock <janburse@fastmail.fm> - 2026-07-20 18:50 +0200
          Parallel π-WAM: An Interleaved Synchronous Emulator (Re: Parallel π-WAM: JavaScript Workers as CPU Backend) Mild Shock <janburse@fastmail.fm> - 2026-07-25 03:51 +0200

#15606 — ANN: Dogelog Player 2.2.3 (Introducing π-WAM)

FromMild Shock <janburse@fastmail.fm>
Date2026-07-07 19:26 +0200
SubjectANN: Dogelog Player 2.2.3 (Introducing π-WAM)
Message-ID<112jcsp$5860$1@solani.org>
Dear All,

We are happy to announce a new edition of
the Dogelog Player:

- Unicode 17.0:
We lifted the Dogelog Player for Java build
to JDK 26 and regenerated our Unicode database
for category and number value for the JavaScript
and Python build. The supported version is now
17.0 and we managed somehow to reduce the footprint
from 16848 words to 15000 words.

- Emulating π-WAM:
The new library(edge/brainfog) permits the
execution of certain Prolog goals in a π-WAM
backend. The concept of a π-WAM embraces a
fusion of a processs (π) calculus and a Warren
Abstract Machine (WAM). Optimized for speed the
WAM is very primitive and currently only supports
the ‘$SEQ’/2 control construct, plus rudimentary
32-bit integer arithmetic and between/3.

- Executing π-WAM:
Both emulate/1 and execute/1 compile into an
identical instruction stream. In the virtual
machine the instructions are 32-bit inspired by
combinations of the 16-bit A and C instructions
from the original Hack. The resulting π-WAM
currently doesn’t support a stack, a trail
or choice points but can nevertheless
do backtracking.

Have Fun!

Jan Burse, July 07, 2026, https://www.herbrand.ai/

[toc] | [next] | [standalone]


#15607 — Dogelog Player: 11.4 Giga Lips with a Budget Laptop (Re: ANN: Dogelog Player 2.2.3 (Introducing π-WAM))

FromMild Shock <janburse@fastmail.fm>
Date2026-07-08 18:39 +0200
SubjectDogelog Player: 11.4 Giga Lips with a Budget Laptop (Re: ANN: Dogelog Player 2.2.3 (Introducing π-WAM))
Message-ID<112lug9$75rr$1@solani.org>
In reply to#15606
Hi,

At the end of 2025 we acquired a couple of AI
Laptops , that were still cheap, since RAM prices
had not yet rocketed. The intend was to tap into
the Copilot+ certified hardware, and shave off
some of the TOPS to do Prolog inferencing. Amazingly
our π-WAM can churn 11.4 GIGA LIPS.

GPUs have evolved form lock-step to independent
thread scheduling. This made it possible to port
the Hack VM variant, that forms the basis for
our π-WAM, to WebGPU computer shaders. Using
NUM_SHADERS = 4096 we could produce 11.4 Giga Lips
on a Ryzen AI 7 350 w/ Radeon 860M.

Bye

See also:

Dogelog Player: 11.4 Giga Lips with a Budget Laptop
https://medium.com/2989/899b0d5c027b

Mild Shock schrieb:
> Dear All,
> 
> We are happy to announce a new edition of
> the Dogelog Player:
> 
> - Unicode 17.0:
> We lifted the Dogelog Player for Java build
> to JDK 26 and regenerated our Unicode database
> for category and number value for the JavaScript
> and Python build. The supported version is now
> 17.0 and we managed somehow to reduce the footprint
> from 16848 words to 15000 words.
> 
> - Emulating π-WAM:
> The new library(edge/brainfog) permits the
> execution of certain Prolog goals in a π-WAM
> backend. The concept of a π-WAM embraces a
> fusion of a processs (π) calculus and a Warren
> Abstract Machine (WAM). Optimized for speed the
> WAM is very primitive and currently only supports
> the ‘$SEQ’/2 control construct, plus rudimentary
> 32-bit integer arithmetic and between/3.
> 
> - Executing π-WAM:
> Both emulate/1 and execute/1 compile into an
> identical instruction stream. In the virtual
> machine the instructions are 32-bit inspired by
> combinations of the 16-bit A and C instructions
> from the original Hack. The resulting π-WAM
> currently doesn’t support a stack, a trail
> or choice points but can nevertheless
> do backtracking.
> 
> Have Fun!
> 
> Jan Burse, July 07, 2026, https://www.herbrand.ai/

[toc] | [prev] | [next] | [standalone]


#15636 — Parallel π-WAM: 1.7 Giga Lips on a CPU (Was: Dogelog Player: 11.4 Giga Lips with a Budget Laptop)

FromMild Shock <janburse@fastmail.fm>
Date2026-07-15 18:08 +0200
SubjectParallel π-WAM: 1.7 Giga Lips on a CPU (Was: Dogelog Player: 11.4 Giga Lips with a Budget Laptop)
Message-ID<1138bah$58mb$1@solani.org>
In reply to#15607
Hi,

We recently implemented a parallel π-WAM
on a GPU backend and could demonstrate an
estimated 11.4 Giga Lips. In this post we
report a further experiment, this time
presenting a parallel π-WAM on a CPU backend,
that can lift specialized Prolog, currently
to 1.7 Giga Lips performance.

Having an excess number of threads is a
bad idea. What if we do context switching
on our own? With this approach we could
bring down the execution time of 128 Hack
VMs by 33%. We estimate for the test which
had 11.4 GLips on the GPU, that we reach
1.7 GLips on the CPU.

Bye

See also:

Parallel π-WAM: 1.7 Giga Lips on a CPU
https://medium.com/2989/8a984e75af44

Mild Shock schrieb:
> Hi,
> 
> At the end of 2025 we acquired a couple of AI
> Laptops , that were still cheap, since RAM prices
> had not yet rocketed. The intend was to tap into
> the Copilot+ certified hardware, and shave off
> some of the TOPS to do Prolog inferencing. Amazingly
> our π-WAM can churn 11.4 GIGA LIPS.
> 
> GPUs have evolved form lock-step to independent
> thread scheduling. This made it possible to port
> the Hack VM variant, that forms the basis for
> our π-WAM, to WebGPU computer shaders. Using
> NUM_SHADERS = 4096 we could produce 11.4 Giga Lips
> on a Ryzen AI 7 350 w/ Radeon 860M.
> 
> Bye
> 
> See also:
> 
> Dogelog Player: 11.4 Giga Lips with a Budget Laptop
> https://medium.com/2989/899b0d5c027b
> 
> Mild Shock schrieb:
>> Dear All,
>>
>> We are happy to announce a new edition of
>> the Dogelog Player:
>>
>> - Unicode 17.0:
>> We lifted the Dogelog Player for Java build
>> to JDK 26 and regenerated our Unicode database
>> for category and number value for the JavaScript
>> and Python build. The supported version is now
>> 17.0 and we managed somehow to reduce the footprint
>> from 16848 words to 15000 words.
>>
>> - Emulating π-WAM:
>> The new library(edge/brainfog) permits the
>> execution of certain Prolog goals in a π-WAM
>> backend. The concept of a π-WAM embraces a
>> fusion of a processs (π) calculus and a Warren
>> Abstract Machine (WAM). Optimized for speed the
>> WAM is very primitive and currently only supports
>> the ‘$SEQ’/2 control construct, plus rudimentary
>> 32-bit integer arithmetic and between/3.
>>
>> - Executing π-WAM:
>> Both emulate/1 and execute/1 compile into an
>> identical instruction stream. In the virtual
>> machine the instructions are 32-bit inspired by
>> combinations of the 16-bit A and C instructions
>> from the original Hack. The resulting π-WAM
>> currently doesn’t support a stack, a trail
>> or choice points but can nevertheless
>> do backtracking.
>>
>> Have Fun!
>>
>> Jan Burse, July 07, 2026, https://www.herbrand.ai/
> 

[toc] | [prev] | [next] | [standalone]


#15661 — Parallel π-WAM: JavaScript Workers as CPU Backend (Was: Parallel π-WAM: 1.7 Giga Lips on a CPU)

FromMild Shock <janburse@fastmail.fm>
Date2026-07-20 18:50 +0200
SubjectParallel π-WAM: JavaScript Workers as CPU Backend (Was: Parallel π-WAM: 1.7 Giga Lips on a CPU)
Message-ID<113ljl9$4pqt$1@solani.org>
In reply to#15636
Hi,

We recently implemented a parallel π-WAM on
a CPU backend and could demonstrate an
estimated 1.7 Giga Lips. This CPU backend
was written in Java, uses Java platform
threads and is meanwhile part of library(edge/
brainfog). In the following we report first
porting steps to JavaScript.

With the adoption of JavaScript workers we
embrace preemptive multithreading, even
for a Web Prolog, and depart from Dogelog
Players cooperative multitasking. The design
also adopts SharedArrayBuffer to replicate
the Java heap, that is shared among
Java platform threads.

Bye

See also:

Parallel π-WAM: JavaScript Workers as CPU Backend
https://medium.com/2989/5ef903e5e785

Mild Shock schrieb:
> Hi,
> 
> We recently implemented a parallel π-WAM
> on a GPU backend and could demonstrate an
> estimated 11.4 Giga Lips. In this post we
> report a further experiment, this time
> presenting a parallel π-WAM on a CPU backend,
> that can lift specialized Prolog, currently
> to 1.7 Giga Lips performance.
> 
> Having an excess number of threads is a
> bad idea. What if we do context switching
> on our own? With this approach we could
> bring down the execution time of 128 Hack
> VMs by 33%. We estimate for the test which
> had 11.4 GLips on the GPU, that we reach
> 1.7 GLips on the CPU.
> 
> Bye
> 
> See also:
> 
> Parallel π-WAM: 1.7 Giga Lips on a CPU
> https://medium.com/2989/8a984e75af44

[toc] | [prev] | [next] | [standalone]


#15740 — Parallel π-WAM: An Interleaved Synchronous Emulator (Re: Parallel π-WAM: JavaScript Workers as CPU Backend)

FromMild Shock <janburse@fastmail.fm>
Date2026-07-25 03:51 +0200
SubjectParallel π-WAM: An Interleaved Synchronous Emulator (Re: Parallel π-WAM: JavaScript Workers as CPU Backend)
Message-ID<11414rn$ccl1$1@solani.org>
In reply to#15661
Hi,

The π-WAM an alternative Prolog VM, for the
Dogelog Player, got one after the other, a GPU
backend prototype, and then productive CPU backends.
So in retrospect we felt the need to not only
emulate in 100% Prolog the initial single threaded
π-WAM, but also its multi threaded successors.

One central idea is to partition the state into
slices, that belong to each logical thread. Since
we adress slices by an offset, we can also use
these offsets for a parallel simulation. Because
of varying warp and tilt parameters the output
usually differs from the CPU backends.

Bye

See also:

Parallel π-WAM: An Interleaved Synchronous Emulator
https://medium.com/2989/0196089e143a

Mild Shock schrieb:
> Hi,
> 
> We recently implemented a parallel π-WAM on
> a CPU backend and could demonstrate an
> estimated 1.7 Giga Lips. This CPU backend
> was written in Java, uses Java platform
> threads and is meanwhile part of library(edge/
> brainfog). In the following we report first
> porting steps to JavaScript.
> 
> With the adoption of JavaScript workers we
> embrace preemptive multithreading, even
> for a Web Prolog, and depart from Dogelog
> Players cooperative multitasking. The design
> also adopts SharedArrayBuffer to replicate
> the Java heap, that is shared among
> Java platform threads.
> 
> Bye
> 
> See also:
> 
> Parallel π-WAM: JavaScript Workers as CPU Backend
> https://medium.com/2989/5ef903e5e785

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.prolog


csiph-web