OverviewFilesCommitsIssuesDocsReleasesPeers

opencog-atomese-simd commits / bf14cca

Rework the README
bf14cca476447b8db58c68685e3977fd6abe00e5
by Linas Vepštas <linasvepstas@gmail.com> · 2025-09-12T17:40:02.000Z

Changed files (1) +24 -36

README.md +24 -36
……@@ -7,6 +7,8 @@ or CUDA. The current prototype accesses the hardware at a low level,
77working with individual vectors. High-level API's, such as commonly
88used in deep learning, are not supported in this interface layer.
99
10The Experiment
11--------------
1012The experiment, as it is currently evolving, is to understand graph
1113rewriting between "natural" descriptions of compute systems. For
1214example, the "natural" description of a deep learning transformer is
……@@ -48,15 +50,23 @@ external world, and a set of motor actions that can be performed to
4850alter the state of the external world. The agent itself is constructed
4951from Atomese; the GPU is a part of the external world, to be manipulated.
5052
51The abvoe description might feel like excessive anthropomorphising of
53The above description might feel like excessive anthropomorphising of
5254a mechanical system. But that's kind of the point: to force the issue,
5355and explore what happens, when an agentic viewpoint is explicitly
5456forced.
5557
58External Subsystems
59-------------------
5660[Atomese](https://wiki.opencog.org/w/Atomese) is the interface language
5761for the OpenCog [AtomSpace](https://github.com/opencog/atomspace)
5862hypergraph database. It has a variety of different ways of talking to
59external subsystems. These include:
63external subsystems. These were developed to solve various practical
64application issues that arose in the use of Atomese. These subsystem
65interfaces are "well designed" in that they solve the particular issue
66that arose. They are not, however, explictly agentic or sensori-motoin
67their design. Some shadows and hints of this can be seen, however.
68
69These external subsystem interfaces include:
6070
6171* The [GroundedSchemaNode](https://wiki.opencog.org/w/GroundedSchemaNode)
6272 allows external python, scheme and shared-library functions to be
……@@ -75,6 +85,15 @@ external subsystems. These include:
7585* The [SQL Bridge](https://github.com/opencog/sql-bridge) allows
7686 SQL Tables to be mapped into AtomSpace structures, so that updates
7787 to one are reflected as updates to the other.
88* Obsolete gateways to ROS, the Robot Operating System, to Minecraft
89 (via MineRL & Malmo), to Unity, the game engine, and many more.
90 These can be found in old, archived
91 [github repos](https://github.com/opencog/), scrolling down to
92 the oldest repos having no activity.
93
94The above "work", but lack an agentic sensori-motor design interface.
95To use these interfaces
96
7897* The [Sensory](https://github.com/opencog/sensory) system, which is
7998 an experimental effort to understand the generic mathematical theory
8099 of interfacing Atomese to arbitrary unknown sensory devices, and to
……@@ -85,45 +104,14 @@ external subsystems. These include:
85104* The [Motor](https://github.com/opencog/motor) system, which attempts
86105 to define a simpler, more practical and mundane way of using Atomese
87106 to work with external devices.
88* Obsolete gateways to ROS, the Robot Operating System, to Minecraft
89 (via MineRL & Malmo), to Unity, the game engine, and many more.
90
91Interfacing to GPU subsystems, such as CUDA or OpenCL, or any of a large
92variety of systems built on these, such as TensorFlow, offer a
93non-trivial exercise for testing and guiding the Atomese sensori-motor
94interfaces.
95
96The interfaces here simply move vectors to and from GPUs and invoke GPU
97kernels to perform processing on them. Perhaps high-level interfaces
98will be added in the future; they're not here in this prototype.
99
100The main effort is to find a balance between abstract mathematical
101theory and a practical, usable interface. The generic Atomese
102sensorimotor research is being done in the hopes of discovering
103generic abstractions that symbolic (and neuro-symbolic) AI subsystems
104can use. If you are a human programmer, you have a zillion-and-one
105choices for programming languages and APIs that allow you to hack up
106almost anything. If you are a symbolic AI agent, or a DL/NN transformer,
107you do not have this richness of tools. You mostly don't even have much
108of a clue of what "reality" is. In part, that's because you don't have
109a sensori-motor system, beyond some hacked-up robots and in-game avatars
110created for you by *human* engineers. Perhaps with a proper theory, some
111of the hackiness can be refined.
112
113The need for a general sensori-motor theory is underscored by the
114failure of earlier OpenCog projects that attempted create "embodied
115OpenCog agents". These are the systems listed above: interfaces into
116ROS, Unity and Minecraft, to name some of the more advanced efforts.
117These were all sensori-motor "hack jobs", built without giving any
118thought of what it means "to perceive and move".
119107
120108Status
121-----
109------
122110***Version 0.1.0*** --
123111Basic proof-of-concept, showing how to use Atomese to open a connection
124to an OpenCL compute device (i.e. a GPU), load and invoke compute
112to an OpenCL compute device (i.e. a GPU), load and invoke GPU compute
125113kernels, and have those kernels work with floating-point vector data
126residing in the AtomSpace.
114that is moved between the AtomSpace and the GPU.
127115
128116New in this version: Atomese interface descriptions are now generated
129117for OpenCL kernel interfaces. This should allow introspection of the