144 core micro, looks like it runs fourth
rwgast_logicdesign
Posts: 1,464
Wow has anyone heard of these, there called green arrays
http://www.greenarraychips.com/
The software is called arrayFourth so im just assuming the chip uses fourth as its primary language, which might be a no go for most folks, but I know there is some die hard fourth fans on here. I dont see anything about purchasing so im not sure what the price is.
http://www.greenarraychips.com/
The software is called arrayFourth so im just assuming the chip uses fourth as its primary language, which might be a no go for most folks, but I know there is some die hard fourth fans on here. I dont see anything about purchasing so im not sure what the price is.
Comments
Duane J
To order one, you have to figure out the proper Schmartboard kit to order, and you get to build it yourself. It costs about $40.
http://www.schmartboard.com/index.asp?page=products_csp&id=532
http://www.greenarraychips.com/home/documents/greg/AN005-110926-SCHMART.pdf
Its extremely powerful. Thing is, what the heck would you use it for? We looking into a bulk buy, then found out we could do one-off buys, then figured out we didn't have any application that needed this hardware.
My mentor suggests its better to finish one thing than start ten new things. So we decided to wait until the project list evolves a bit more. If it ever gets to the point where it needs a vision system, etc, the greenarrays GA144 will be on the short list of candidates. Right now we are waiting for the Raspberry Pi camera to come out before we start talking vision.
GA144 is not really orientated towards everyday programmers. In fact I can't see a useful app for it or one that can't be done by a ARM or MSP430 mcu's. What the GA people really need is more app notes and documentation given it's uniqueness, as it is, they are doing a bad job selling the chip, given that it's been out for about 2 years now.
Just google the GA144 and you don't find anyone doing anything with it. That is a warning sign, that almost no one can figure out what to do with it. But for some reason GA doesn't care.
Thats why they are not marketing to you. We are are just getting used to 8 cores. Most folks think 4 cores is a big deal, and would have 143 cores sitting idle. This part is not for those folks.
GA144 is best suited for say, a DSP type application (IMHO). But considering that most folks aren't interested in writing microcode for a DSP, There aren't so many folks that are able to put this to work in the first place. I almost organized a group buy, but I have no application that merits the power of this part.
When we get into say, big fat vision streams from a pair of Raspberry Pi's, and start pre processing the video stream for edge detection, blob shift, parallax image matching, and the kinds of things real eyes do before the image gets to the brain (if thats really how it works) then there might be a use for these. Right now the hardware is too far ahead of the wetware.
If I do ever get to that point, I know I can get one for $35, so I'm not in any hurry yet.
People have been working with multi and parallel processing long before Chip ever had the idea. It's nothing new. 20+ years ago it was a different story.
As for marketing GA is certainly not targeting hobbyists, academics or even commercial firms, given their utter lack of useful documentation and app notes to show how powerful their chip is. Heck they don't even bother to teach people how to make use of the processors. No floor planning software, no nothing. Either they are sitting on the information or don't have a clue themselves.
Even GA engineers can't figure out a useful app to demonstrate the GA144 to prospective customers to wow them. As for it doing DSP work, you have to be joking. Show me the benchmarks that it equals Analog Devices competing products or even a dedicated FPGA - you can't, even GA can't. All they've done is put out a chip, with minimal documentation and then sit on their behinds like a bunch of mushrooms.
This is a part where we have yet to figure out what to do with it. Its not a better choice for anything we are used to doing, but it might be a good choice for something we haven't been able to do before. The default choice is nothing, thats a valid choice. The second choice is to wait until we have an application that looks like this might fit, then give it a try. We haven't got that far yet, I don't know about anybody else. The military doesn't email me on every new weapon system, typically they do this stuff first.
The Green Array provides what is really an assembly language that merely includes machine code for built in stacks.
Quite a bit of the array's processing is taken in passing data from one array to another as only the 'edge' arrays have the ability to communicate with the outside world. It is an 18 x 8 matrix. Also, it has NO clock.
Since it is so unlike the Propeller, which has 8 processors that can all reach the outside world, and data speed in not dictated by an oscillator - I can't seem to see what do with it regardless of how one programs it.
It may be useful as a dedicated number cruncher.
IMHO, C isn't going to rescue this chip in any way, shape, or form, because the use of FORTH isn't its chief problem.
GA144, as it stands, provides a complicated way of achieving average performance.
It is NOT a 12 x 12 array... it is an 18 x 8 array. But it certainly does have enough depth to spend a lot of time passing data along in a left, right, up, or down way.
I suppose from a neural network point of view, it might make sense to some. But it is a very very different kind of processing with 18 bit 'words' and hardware stack machines. You have to accept that it is indeed hardware Forth with some interesting i/o and go from there.
In may seem inefficent in the sense of clocking instructions, but the lack of a clock makes things happen almost instantaeously. So in some ways it is more of a programible state machine than something else.
You suggested in an earlier post that the GA144 could be used as a dedicated number cruncher. Please consider the task of loading two 32-bit operands into this chip, and extracting a 64-bit result. Piece of cake with an ARM, Propeller, PIC, AVR, x86, etc. Nothing but trouble with GA, every step of the way. Can you imagine having to involve a dozen processors - and a dozen pieces of code - just to do a parallel read or write?!
I was so excited when I first heard of this chip. It was all downhill from there.
Remember when 8 cores and no interrupts was a big deal to get your head around? Some folks still don't get that. Be patient. When software catches up with hardware, interesting things happen.
I agree with the earlier comments that I/O is a big problem with this chip. It might be a useful image processing chip if each processor had it's own photo-receptor. Of course, there would need to be many more than 144 processors for it to be useful. It will be interesting to see if this chip ever sees a useful application.
I just figured anyone in their 'right mind' would use 16 bits out of the 18 to interact with other processors. From 16 to 32 to 64 would be rather conventional doubling. But the truth is that I've no idea of how to manage the 18 x 8 matrix with all the special i/o nodes. The GA144 is a puzzle to me, but that is the fun of it.
Apparently we'll have to take that on faith. I can't verify what was in Chuck Moore's head when he decided to lay down 144 F18A processors in a rectangular array, but I suspect it was more a convenience-based decision than a fiendishly clever master plan. In other words, there doesn't appear to me to be any sort of guarantee that the GA144 is necessarily good for anything. GreenArrays, themselves, seem to be on a quest to discover what can be done with it.
The lack of a single bomber application this late in the game doesn't bode well. Most chip manufacturers have arranged something useful for their chip to do before there is even silicon. To whit the P2.
On that we agree. I would include GreenArrays in "most folks."
In a rash moment I backed Adapteva on Kickstarter for the Parallella platform is based on the Epiphany multicore chips.
So that is 16 times 32 bit floating point cores, a bit of memory each and a high speed switch matrix to get data in and out. Later there will be 64 such cores. All hooked up to a regular ARM computer.
Sounds a millions times more usable than the Green Arrays device right?
Well, after that I looked into parallelizing my FFT for use on the Propeller or else where.
Even with languages like C with OpenMP or Go with it's Go routines that support parallel concepts it turns out to be damn hard to do.
At least with the Parallella board if I can't figure out what to do the multi-core math processor the rest of the board is a regular ARM computer with a reconfigurable FPGA on it. Could be hours of fun with just that.
The Epiphany multicore seems to have a more functional approach. I am now sitting on my Cubieboard just trying to figure out what to do with yet another Linux computer. It does have the appeal of being a low-power 24/7 server, but i am not sure what i need to serve. My wifi gateway/router is already a 24/7 printer server with a file server thrown in.
These days my attention is turning more to good chair designs. I'd like to find myself sitting in eternal comfort.
If one really wants to find a good use for the Green Arrays GA144, it will have to powerfully exploit the geometry of the array itself. 144 Forth machines not working in harmony are likely to not be much of a WoW.
I've tried to sort out the special borders from the more generic arrays in the interior.
Of course, the GA144 may not be good for anything when standing alone, but might suddenly be handy if you used 10 of them. It is just hard to say. The main thing here is to not apply 'known tools', but to visualize new ones.
For me, the most attractive features of Forth are [a] it is interactive, and it has an extendable dictionary. I have yet to tie either of these attractions into a matrix in any profound way.
I'm not much of a gambler but reading around the company and the guys in it I thought perhaps they could pull it off.
Also, as I say, if the board arrives and I have no idea what to do with parallel chip it is still on a par price wise with other ARM boards with an FPGA thrown in.
Anyway, it got me to thinking that if I were in charge of redesigning the GA144, I would pair F18A's together. One F18A of each pair would be in charge of "data movement and I/O tasks" and the other would be in charge of number crunching. A bus or shared registers would connect the two F18A's of each pair. Finally, the I/O processor of each pair would be connected to the I/O processors of neighboring nodes, pretty much as it is now, only with half the impediment of communicating with the outside world. (Because, frankly, right now the GA144 reminds me of the Sun. Consider what it takes for a photon generated in the core to get to the corona...)
The GA144 interests me exactly because it is not a standard setup. I suppose you are free to find a geometry that uses half of the 144 processors for communication and the other half for actual tasks.
That in itself is worthwhile exploring.
Of recent the GA144 has shown me how dependent we tend to be on an input/output model of computing. About the only modification with allow is a Unix model of 'standard input, standard output, and standard error.
I've tended to look at the GA144 as having one 18 cell edge providing all the input and the other 18 cell edge providing output ... with all the data having to work its way across the interior.
That is NOT the only possiblity as input and output can share the same edge and maybe even the same port. So data may be input, make a circuit around the adjacent processors as required and return to the same place to provide output. And this can all occur independently at different i/o nodes along the edges.
So you could have a machine that morphs from being a few parallel tasks to many as required and back again.
I suppose we would have to look as what kinds of 'state machines' are difficult or impossible in the other alternatives.
And so, the GA144 exists to get you to consider alternatives that may have never been considered before. It is likely to redefine your role as a programmer along the way.
Business consultants teach managers about efficiencies, like the idea of handling your mail just once. Data being bit-banged from processor to processor, by the very processors that are supposed to be doing computations, is exactly how not to do things efficiently. That's why I reject the comparison of the GA144 with an FPGA. Those who make such a comparison understand neither FPGAs nor the GA144.
Once you start programming to an actual task, all devices have some measure of wasted resources. I have a Quad 64bit for a desktop and I am sure it is sitting around doing wait states most of the time.
Besides, data is NOT being 'bit-banged' from processor to processor -- once the i/o gets data it becomes 18 bit parallel. There is even accommodation for parallel RAM i/o
If the business world were truly efficient, much more of the world would be starving. Maybe an FPGA is a better fit in your context. But the GA144 provides a learning model. Personally I have no idea how the GA144 compares to an FPGA. But I do have reservations about stack machines.
What interests me is the creativity and the ability to explore new alternatives. Just because arguments are compelling doesn't mean they reflect real issues and facts.
http://www.intellasys.net/
I've got one of their kits usin g an earlier, smaller chip, and a couple of the later chips, but have never used them.
Chuck Moore fell out with them.
https://groups.google.com/forum/?fromgroups=#!topic/comp.lang.forth/idHaaLhENBE
It doesn't seem to be doing much, from their web site. It even states that Chuck Moore is still associated with them.
I have been reading the documentation and it is a bit of a challenge. But in this case it might be best to first study the F18 document, and not the GA144.
While the GA144 is supposed to do serial i/o at a hugely fast rate, that appears to be synchronous. I am always interestrd in the RS232 side of serial and it seems that the GA144 might provide it, but I am not quite sure.
DB001-110412-F18A.pdfDB001-110412-F18A.pdf
One really has to study the GA144 in to separate contexts - one is the function of an individual F18A processors, and the other is how the 144 processors operate.
There are 22 processors that have specific i/o features that are specialized. The remainder are more generic, but edge and corner processors have less adjacent processors to pass data between. i suppose that the 22 i/o processors include some that depend on an external clock to receive, and maybe even send, serial - but once the data is in the GA144, it appears to move as through the array as fast as possible, unless intentional delays are imposed.
Section 5.6 Timing Diagrams in the GA144 document simply says "TBD". (groan......................)
http://www.greenarraychips.com/home/products/index.html
Their development board sells for $450. During a weak moment, I bought one. Like others have pointed out, it's not obvious what can be done with it.
I've enjoyed Forth for decades, however, never got REALLY good at it. As for this board ... sometime soon, a group of us will be meeting in the Sacramento Valley to see this board and learn more about it. One of the attendees works for GreenArrays, so it should be interesting!
To repeat what I have been trying to say...
The matrix of 18 x 8 processors has to be looked at as a separate programming issue than the individual F18A Forth engine.
144 processors is a heck of a lot of processors and just because you have so many doesn't mean you have to use them all or need them all to get a useful and economical application.
Take a good look at the 22 i/o processors when you are trying to find a project. I suspect the Parallel i/o is least likely to be fully exploited, bu the ADC and DAC are interesting.
Since the GA144 is extremely low power and fast, I suspect that monitoring a grid of solar panels or the charge/discharge state of a large array of batteries might be worthwhile projects.
Just trying to get 12 lithium ion batteries on an electric bicycle to behave is an excellent project to consider as lithium batteries have a very flat charge and discharge curve. That means that one cannot just monitor voltages, one has to keep track of current delivered as well and both the voltage and the current have to be monitored over time.... ideally for each and every cell.
So... trying to handle the charge and discharge of those 12 batteries might really need all 144 processors to do the job well. Recently the Boeing 787 fleet has been grounded due to lithium ion battery problems. This might just be the solution to Boeing's woes.