OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomese-simd commits / a108be8

Close one chapter of design, open the next.
a108be8c018ed60250b92e58c7648287a386f009
by Linas Vepštas <linasvepstas@gmail.com> · 2025-09-12T04:54:14.000Z

Changed files (2) +51 -0

Design-E.md +48 -0
……@@ -0,0 +1,48 @@
1Design Notes E
2==============
3September 2025
4
5Notes about wiring, composability and flow.
6
7Status: Basic GPU operations seem to work and seem to have a reasonable
8API. Time to review higher order goals. This is a recap of unimplemented
9ideas from Design Notes C.
10
11There are various unfulfilled design goals:
12
13* There should be a way of creating wiring diagrams, along which data
14 flows. Abstractly, this would be sensory data, flowing in from some
15 sensor, being transformed via sequences of GPU kernels, and then
16 updating AtomSpace memory and driving motors.
17
18* Allow basic DL/NN ideas like transformers to be written in Atomese.
19 That is, there should be a way of converting DL/NN pseudocode from
20 published papers into Atomese, and then run it.
21
22* Implement an Atomese version of LTN, Logic Tensor Networks, but
23 generalizing it so that any kind of logic can be encoded, and not
24 just the "real logic" of LTN. Specifically, want to be able to encode
25 assorted modal logics, including epistemic logic.
26
27* Provide semantic elements. The current demo includes two kernels:
28 one that adds a pair of vectors, and another that multiplies them.
29 These are representations of the abstraction provided by `PlusLink`
30 and `TimesLink`. It seems appropriate that these two kernels should
31 be stored in or associated with `PlusLink` and `TimesLink`, so that
32 the Atomese is written with these, and not with the raw kernels.
33
34* Provide composable, compilable elements. A large subset of Atomese
35 allows for the writing of abstract syntax trees, representing
36 processing flows. If such trees include both `PlusLink` and
37 `TimesLink` and these are composed together, then the data should
38 never leave the GPU, but should be processed in-place. That is, the
39 OpenCL kernels themselves should be composed and compiled "on the
40 fly", to perform the desired operation.
41
42It seems like all of these should be possible. The groundwork for some
43of this has been laid, and so some of these can be tackled. Perhaps
44implementing a library for the core AtomSpace arithmetic functions is
45a reasonable next step: so, having `PlusLink` and `TimesLink run on the
46GPU.
47
48----
Design.md +3 -0
……@@ -15,6 +15,9 @@ actual design.
1515 composability and flow and how they might get solved. These remain
1616 as major TODO issues.
1717* [Design-D](./Design-D.md) catalogs some minor design issues, all solved.
18* [Design-E](./Design-E.md) recaps the main design goals that remain
19 unimplemented. Next step should be `PlusLink` and `TimesLink` running
20 on the GPU.
1821
1922Structuralism Overview
2023----------------------