OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-sensory commits / b9370b3

Critique of flows.
b9370b3d1d3df5ddb1a4fcb0a48a6425a245b625
by Linas Vepstas <linas@linas.org> · 2026-01-13T02:23:39.000Z

Changed files (1) +35 -2

DesignLearn-A.md +35 -2
……@@ -46,5 +46,38 @@ never taken, for two reasons:
4646 mostly completed.
4747
4848So given that the primary issues were resolved in the two bullet points
49above, I am now ready to try again. But, before starting, some
50critiques, some planning, some day-dreaming.
49above, I am now ready to try again. And short-term plans include working
50with both audio and visual data, this time around. Concrete plans
51further below. But, before starting, some critiques, some planning,
52some day-dreaming. The below will ramble a bit, because I haven't
53figured out some parts yet.
54
55Critique of Flow Design
56-----------------------
57The "flow" code and demos in the atomspace work "just fine", more or
58less. However, several big issues exposed themselves during development.
59Consider the problem of implementing the flow pipelines on GPU's. Viz.
60I want to have the declarative description to be in Atomese, but the
61processing to happen on the GPU. But how? Several answers, none
62satisfactory.
63
64A) Hard code GPU variants of `PlusLink`, `TimesLink`, etc. Yuck. Hard
65 work, fragile, non-portable. Any such implementation would become a
66 some weird cross-over between interpreter and compiler. See below.
67
68B) Write a compiler. Here, The `PlusLink` etc. become "assembly code"
69 and the compiler turns it into CUDA code or OpenCL or whatever. Yuck.
70 Such a compiler is large, complex, non-portable. Its also a "been
71 there, done that" project: people have been writing compilers for
72 fifty years, and doing it yet again for a highly specialized use case
73 is boring and pointless.
74
75C) Define the GPU hardware in such a way that it can be "perceived" by a
76 sensori-motor agent that could "just look at it" and "use it". Yes!
77 Great! A bit too pie-in-the-sky for now; I lack the infrastructure to
78 get off the ground on this. It's an aspirational.
79
80Status: Punt. Item C) is the aspirational goal. The code located at the
81https://github.com/opencog/atomese-simd directory is some pre-prototype
82of A) and B) and I might yet tinker with it some more. I do not yet have
83an firm road-map for getting to C).