

Soft Machines VISC architecture - smolsky
http://www.softmachines.com/technology/

======
smolsky
Here is a presentation: [http://www.softmachines.com/wp-
content/uploads/2014/10/Soft-...](http://www.softmachines.com/wp-
content/uploads/2014/10/Soft-Machines-VISCtm-Architecture-Tech-Briefing-
vF.pdf)

~~~
rwmj
The first striking thing is the diagrams have a "magic box" ("Global Front
End") that turns serial code into threaded code. Skeptical. On the other hand,
they claim they've had $125M funding, taken 7 years, have filed numerous
patents, and have (at least a picture of) working hardware. Interesting times.

~~~
msandford
The parallelism is there in most of the algorithms, and it gets taken out by a
human translating the algorithm (which is inherently parallel) into some
arbitrary language that the computer understands (most of which aren't
parallel).

If you do a REALLY good job of pattern recognition coupled with some execution
in a simulator you might be able to figure out what the core of a program is
and go to work on that.

I'm skeptical of anything that reverses arbitrary machine code from serial to
parallel but that's not to say it can't happen.

I did some work patching binaries on "basic blocks" which are chunks of code
between branches. Inside a basic block you can reorder instructions however
you'd like so long as you don't step on your own feet. The key piece of
insight that enables this is that as long as the program state is correct by
the time you get to a branch, it doesn't matter the EXACT order in which it
got to the correct state.

If they've had some kind of bigger insight, it's not unreasonable to come up
with short-timescale virtual threads. Cache latencies are on the order of a
few to say a hundred cycles. Core to core latency should be about the same if
you design it well. Having an insight that's bigger than basic blocks and
scales up to say maybe 1000 cycles would enable you to shuffle computation
from one core to another and back in time to make an improvement.

CPUs which do out-of-order execution already have a commit engine which either
commits or throws away the results of speculative computation as a result of
the branch predictor. To make something which operates at a larger (though not
program-wide) scale isn't impossible to believe.

------
al2o3cr
All I got from that press release was a mental image of a car labeled "Soft
Machines" driving headlong towards a wall with "Amdahl's Law" spraypainted on
it...

------
Narishma
How is this different from SMT?

~~~
solarexplorer
SMT maps multiple threads to a single core. This maps a single thread to
multiple cores.

