Hi All,
I have just downloaded the latest arrayForth and polyForth systems for the GreenArrays GA144 EV001 evaluation board, dusted down the eval board and installed it... (snip)
: asd 1000 for 1000 for 0 drop next next ;
takes about 3 seconds.
IIRC a 16 MHx Novix takes less than 1 second for this, and most 8 bit processors are some tens of seconds.
(snip)
All in all it could compete with an MSP430, 8051 or a PIC except that only with the GA144 do you get so many fast cores with fast I/O to play with.
The GA144 with polyForth seems to be to good not to use...
Just sharing my excitement - well done to all the GreenArray folks!
Best regards,
Howerd
--
You received this message because you are subscribed to the Google Groups "ColorForth" group.
To view this discussion on the web visit https://groups.google.com/d/msg/Color-Forth/-/jAIlClF8fWwJ.
To post to this group, send email to Color...@googlegroups.com.
To unsubscribe from this group, send email to Color-Forth...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/Color-Forth?hl=en.
*****
Every action of our lives touches on some chord that will vibrate in eternity.
Sean O'Casey
Nick,
Glad to see some interest and I encourage you to get yourself a chip and see what you can do with it.
It is not intended to be a speed demon, in it's current form and cerainly isn't expected to beat a desktop computer, unless you consider the number of watts each instruction takes. I'm not good at calculating all the numbers or even remembering them for that matter, but you can certainly read about all of that on their web site. I just know that it takes working with the chip before you can appreciate its capabilities.
I do know that I can make a faster loop with unext, but putting something onto the stack from within that loop gets to be interesting.
I also know that the "native" language of ColorForth is actually Intel x86 machine code, which has nothing to do with the machineForth that the GA144 runs natively. What Howerd showed was pretty close to "native", but there are all sorts of optimizations that could be applied, to the point that the loop just disappears. I'm sure that's not your point. ;)
I have done some timing with earlier generations of this chip and they tend to be rather complex to do properly. The hardest part is to eliminate the observer from the results. However, once again, the GA web site has a lot of information regarding the measurements they have obtained, which are consistent with my observations.
So, try it! You just might like it. ;)
DaR
To unsubscribe from this group and stop receiving emails from it, send an email to Color-Forth...@googlegroups.com.
To post to this group, send email to Color...@googlegroups.com.
Visit this group at http://groups.google.com/group/Color-Forth.
For more options, visit https://groups.google.com/groups/opt_out.
It is not intended to be a speed demon, in it's current form and cerainly isn't expected to beat a desktop computer, unless you consider the number of watts each instruction takes. I'm not good at calculating all the numbers or even remembering them for that matter, but you can certainly read about all of that on their web site.
I do know that I can make a faster loop with unext, but putting something onto the stack from within that loop gets to be interesting.
I also know that the "native" language of ColorForth is actually Intel x86 machine code, which has nothing to do with the machineForth that the GA144 runs natively.
So, try it! You just might like it. ;)
DaR
From: Color...@googlegroups.com [mailto:Color...@googlegroups.com] On Behalf Of NickM
Sent: Thursday, August 01, 2013 11:50 AM
To: color...@googlegroups.com
Subject: Re: [Color-Forth:434] GA144 polyForth
On 28 September 2012 21:41, Howerd <how...@yahoo.co.uk> wrote:
Hi All,
I have just downloaded the latest arrayForth and polyForth systems for the GreenArrays GA144 EV001 evaluation board, dusted down the eval board and installed it... (snip)I also ran a speed test :
: asd 1000 for 1000 for 0 drop next next ;
takes about 3 seconds.
IIRC a 16 MHx Novix takes less than 1 second for this, and most 8 bit processors are some tens of seconds.
(snip)
All in all it could compete with an MSP430, 8051 or a PIC except that only with the GA144 do you get so many fast cores with fast I/O to play with.
The GA144 with polyForth seems to be to good not to use...
Just sharing my excitement - well done to all the GreenArray folks!
Best regards,
Howerd
Nick Maroudas here: Early reviewers often wondered what one could do with all those cores. I am intrigued by the possibility that, given a board with hundreds of fast cores (plus a few inbuilt DACs) one could build a much more realistic synth than any that are currently on the market. Because one could model two aspects of musical instruments:
1. distributed systems (vibrating in 2D or 3D space) with cores as "lumped constants"
2. and/or parallel processing (of harmonic partials) with each voice having its own set of cores to handle its own set of partials.
Commercial synths sound terrible to my ears, and their sample rates are too slow to match the realism of modern recording technology (192-384kHz).
Re your speed test, I make that 3 seconds per million do loops. Which is the same order as your 1 sec on a 16MHz Novix. Always glad to hear of the efficient Novix, though mine was only 4MHz:). But is that the best Chuck's latest cpu the GA144 can do? For comparison, I ran a 1000*1000 do 0 drop loop, on my desktop with MPE's vfxforth running on a 3GHz Pentium, and it took only a couple of millisec. MPE say that their vfxforth compiles to native code. Would the GA144 be faster if it were compiled from native ColorForth?
Caritas,
Nick
Ah, I see your confusion. 650 Mips does not translate to faster loops/sec on one "thread" of execution, but multiply the speed times 288 "threads" of execution. It's a parallel processor and a single core is roughly equivalent to a Novix, but each chip holds the equivalent of 144 Novix chips. I'm not sure I can explain the speed increase properly, but it's not 1-to-1. You have to be able to expand the problem up (or down depending on your perspective) before you can take advantage of the parallel concepts. Simplistically, you just multiply times 144, but reality turns out to be much more complex.
Some of the ColorForth concepts (like for…next) made it into MachineForth, but initially, we did VentureForth on SwiftForth, gforth and MPE Forth, so CF is not required to do MF. In the end, you only need to know the 32 MF instruction set. See: http://www.greenarraychips.com/home/documents/greg/DB001-110412-F18A.pdf
--
http://www.greenarraychips.com/home/documents/pub/AP002-OSC.html
"At roughly 2.5 nS per unext iteration, the period would
be roughly 12,207 loop iterations per cycle [of ~30 us for a 32kHz osc]"
Caritas,
Nick
Ah, I see your confusion. 650 Mips does not translate to faster loops/sec on one "thread" of execution,
Some of the ColorForth concepts (like for…next) made it into MachineForth, but initially, we did VentureForth on SwiftForth, gforth and MPE Forth, so CF is not required to do MF. In the end, you only need to know the 32 MF instruction set.
DaR
Nick,
I don't see where you are seeing any reference to PolyForth or SaneForth in that article. The code is obviously ColorForth, based on its color syntax and compiles directly to MachineForth.
As far as any discrepency between whoever the author of that article was and Howerd's measurements, I have no opinion, but recommend that you do your own measurements, citing my common belief: http://www.spec.org/osg/news/articles/news9412/lies.html
DaR
From: Color...@googlegroups.com [mailto:Color...@googlegroups.com] On Behalf Of NickM
Sent: Friday, August 02, 2013 12:27 PM
To: Color...@googlegroups.com
--
Hi Nick,
BTW thnks for the email - I only check this group occasionally :-)
The loop speed that I mentioned is for a polyForth running on five F18 cores, using off chip RAM - it is much slower than a loop on 1 core, which could run 1M loops in ~1/4 ms.
So the : asd ... : code is high level polyForth code, nothing to do with F18 instructions directly.Yes :-)
> Is it in the PolyForth virtual machine
Using ArrayForth ( or anything else ) to create F18 instructions would create code that would run at the F18 speed ( ~600 MIPS).
The point in my original post was that even running a 5-core polyForth gives speeds comparable to an 8051 or MSP430, at similar power levels.
You can always drop down to the F18 assembler code, for speed, too.
BTW I am very interested in music applications in CF and/or GA144 :-)
Best regards,
Howerd
***