Ras-Pi closed platform, difficult to develop open code for, and about that P2!
potatohead
Posts: 10,261
http://whitequark.org/blog/2012/09/25/why-raspberry-pi-is-unsuitable-for-education/
We've had a few discussions about the video capabilities on both P1 and P2, and how it's not really the norm to do that. Well, given how GPU technology seems to stay closed and difficult, having some open, software driven, flexible video options on P2 might align really well with some growing trends.
Frankly, P1 is just a little bit below the curve to serve as a general purpose GPU, unless one is talking about TV resolution (320x200). But, what we've seen so far on P1 speaks quite highly of what we can expect a P2 to be able to do. XGA resolution, solid color depth, general purpose color transforms, textures, and a ton of moving objects and or drawing planes / masking ops possible, on multiple displays with or without external RAM, and with or without dedicated "VRAM", depending on implementation.
And it's a graphics path with a lot of flexibility! Props work in some ways that really can pack a lot of punch in the area of low latency simultaneous graphics and input. Programming these kinds of things has been demonstrated on P1, giving people a body of very potent code to work from too, unlike the current closed tech we are seeing in a lot of places.
IMHO, Chip really is doing some of the right things here. I'm optimistic about the future to come.
Could be quite the niche for the P2! Eager to read your thoughts.
With advent of GPGPU and with various devices consisting mainly of giant screens increasingly filling our lives, learning to program GPUs has never been more important!
Update: The paragraph below previously stated that the schematics were not available. This was an editing error.
We've had a few discussions about the video capabilities on both P1 and P2, and how it's not really the norm to do that. Well, given how GPU technology seems to stay closed and difficult, having some open, software driven, flexible video options on P2 might align really well with some growing trends.
Frankly, P1 is just a little bit below the curve to serve as a general purpose GPU, unless one is talking about TV resolution (320x200). But, what we've seen so far on P1 speaks quite highly of what we can expect a P2 to be able to do. XGA resolution, solid color depth, general purpose color transforms, textures, and a ton of moving objects and or drawing planes / masking ops possible, on multiple displays with or without external RAM, and with or without dedicated "VRAM", depending on implementation.
And it's a graphics path with a lot of flexibility! Props work in some ways that really can pack a lot of punch in the area of low latency simultaneous graphics and input. Programming these kinds of things has been demonstrated on P1, giving people a body of very potent code to work from too, unlike the current closed tech we are seeing in a lot of places.
IMHO, Chip really is doing some of the right things here. I'm optimistic about the future to come.
Could be quite the niche for the P2! Eager to read your thoughts.
Comments
Open source madness?
Are you suggesting that every detail of the computing environment that you use be open sourced before it is acceptable as a teaching or educational tool?[1]
In that case teachers, cannot use Intel or Motorola or Microchip or ATMEL processors. For sure they cannot use the closed source Propeller or P II as well.
Now:
1) The actual design and working of the processors you use is not open to you.
2) Logically anything that can be implemented in software can also be implemented in hardware logic.
3) So, lets assume that those terrible closed source graphics driver softwares are in fact part of the hardware package you have bought.
Not to say that I would not like more openness.
[1] I belive that is actually true. Teaching should not be beholden to any single bussiness enterprise. How we actually achieve that is beyond me.
Just getting down to reading your linked to article:
Like I said, the same could be said about the Propeller or PII. Or the "ever so open source" Arduino, or Intel whatever.
It the guy is so serious about his open source mission he only has to release the designs for a board using his preferred architecture along with instuctions on how to build it from the ground up. I look forward to seeing that (really).
I do hope Chip and company port OpenGL ES to the P2 if they plan to use it as a GPU.
He is partly right - I agree 5V tolerance on an expansion is desirable, but he misses a little in ranting somewhat about 'closed'
- The venerable Turbo Pascal did not come with source code, it was what you could DO using that tool, that really mattered.
Where having source helps, is it allows more users to do more, at more levels.
It is not really a drop dead' situation, for education.
There, you need a stable, documented, easy to use development flow.
Indeed, completely open 'creeping featurism' has its own downsides, which can appear as version compatibility issues.
That really wasn't my primary point. Frankly, I am a fan of the Pi and various other "mobile like" programmable devices out there.
What I was getting at specifically was the GPU's and their increasing relevance today and how a lot of that isn't open, nor accessable on the same level other things are.
IMHO, P1 offers some great opportunity to dip ones toe into that kind of tech, and P2 will be good for a swim, or better.
When considering the educational angle, GPU related things are increasingly "black boxed" and I can appreciate the opportunity the P2 will present.
This thread isn't a rant or manifesto on all things open, rather an attempt at some discussion related to what I see as an interesting niche, that's all. Thread title could use some reconsideration, I suppose...
Anyhow, I thing it is a great opportunity as good GPU tech is largely closed. That is gonna happen on P2 as well due to the code protection, but open hardware and some good code to work from is there, and available for people to learn on and that is education relevant, as well as a place to build some new ways of doing things in that realm, something P1 has already started. We have some damn clever sprite object code and a display that is easily parallelized, just not a lot of resolution and color.
*bear in mind closed was basically obscure then more than anything else in those days, though I did learn a lot with a disassembler. Could be done today the same way, though the scope of the reverse engineering is much, much higher, presenting what I see as a stiff and growing barrier.
However, simple availability of tools and such is sufficient to educate well, so long as there is more education than sales type advocacy learning where the material itself tends to sell products more than it does enable people generally.
Re: OpenGL ES on P2.
Yes, me too, even if it is a reference implementation like MESA was for so long.
I think the Tegra, Broadcomm, etc.. chip sets a really great, potent designs. Nothing here should be taken as a slam against them. Really, I'm thinking about P2 and a fairly potent, software graphics system and what that might mean on a number of fronts.
RAM remains the Achilles' heel of the P2, and that stacked RAM on the RaspPi, is what lifts it above the 'also rans'.
So there are certainly limits on what can be done, in a GPU sense.
Perhaps a P2 and something like a SSD1963, would be more useful, but the price of that combo is climbing.
http://www.youtube.com/watch?v=vAZkiR7MV3s
run on machine which haven't any GPU and <1 MIPS 8-bit CPU
Amiga has 2 MIPS CPU - 1/1000 of planned P2 computing power... and we all know what it can do.
So, we don't need a newest nvidia/amd GPU with 6 billions of transistors and 3 teraflops computing power to get something nice out of it.
In my opinion 99%, maybe even more of this computing power is simply wasted.
So.. let us wait for P2. Its 1600 MIPS is something about 1/1000 of these GPUs. But we can program it in asm instead of opengl. And we haven't an operating system which slows all things down. And we don't have to transfer gigabytes of data from cpu memory to gpu memory.
Firstly the as far as the guy saying GPU programming is becomming more and more important he is right but im not sure how this applys to a p2. Im pretty sure this statement was made because GPUs can run crazy teraflops have 100's of pipes do fast FP Math. In the desktop world GPUs have become a good tool to solve certain types of problems that may not lend itself to the standard CPU, due to parallelism or highly accurate floats.
So is the p2 going to have a good FP system? If so that will be awesome for so much more than graphics. I know the p2 will have a dram interface but thats only to store data right? Thats fine for graphics, with a decent 32mb of ram to hold graphics data and a solid FP system, I see no reason why the prop couldnt match an older generation nvidia card like a TNT2, Im not totally sure if thats possible though as the propeller will give you eight parallel process to work with, I have no idea what 2002 era graphics cards had in terms of piplines and parallel processes, something tells me its more than a p2 though. In any case if the p2 could run quake1 that would be icing on the cake!
I think the real power of this dram port is along with better video generation is going to be in 2d capability's. Most of need 3d graphics, but there are tons of people looking to do good resolution 2D gui systems. Imagine having enough power to take something like propalyzer and add a nice 7 inch LCD. Or how about a single chip for a kiosk like red box. I think thats going to be the most important thing about the prop 2s video. It will provide a way for people to give a nice front end to there product on most any size screen. Maybe im not forward thinking enough or something, but 3D graphics doesnt seem to important at all for most microcontroller applications, it is cool, im sure people would make 3d hydra systems but im not sure its a huge market, especially now that theres things like the PI with a familiar OS that lets you use the standard OpenGL API.
Although it is great to have all the details on the system available just discarding and writing off a platform like that author did in that article isn't right. I think he is asking an awful lot from a $35 machine and the way he rips on it with his rants makes him loose a lot of credibility in my opinion. Closed? Really? I guess that is why there is already a wide variety of Linux Distros that run on it now. In regards to the I/O think about the add-on cards to leverage the GPIO (think Arduino shields) or use the USB. Even the Propeller is 3.3V and with a lot of things moving there I don't see 3.3V as an issue. I've already been able to leverage the onboard Serial and I2C via the GPIO. I'm planning on using it to talk to a couple Propller boards as co-processors.
I like having the low level details but honestly I think a lot of people who are getting them for educational use may be fine just starting out with Scratch, Python, C, etc to develop their programs. They should be able to write applications just fine with those. Who says they won't be perfectly happy at that level. Some may never need or want to go any deeper. The Raspberry doesn't seem any more closed that any other system.
http://whitequark.org/blog/2011/10/07/my-first-factory-made-pcbs/
Anyway, 2D! Yes. IMHO, the Prop 2 will do mad 2D things, and I look forward to jamming on it. One interesting aspect of it is being able to parallelize the display for low latency feedback. There is enough RAM in P2 for a simple frame buffer, which all the COGS can write to as needed, and dynamically, meaning a whole lot of embedded type displays can be fast, with no real need to double buffer. I'm also hoping we see configurable displays see more use. That's where various display methodologies are used in tandem to build a display that's really tuned to the application at hand. Both of these things are possible on P1, but it lacks RAM to do them at any real resolution...
As for education and GPU type programming, the P2 isn't like a mainstream GPU, meaning I don't know that it's terribly applicable. I am a student of this stuff myself. However, the P2 can take advantage of a LOT of graphics techniques, and those are totally worth learning. The P1 offers this same dynamic, though at a significant challenge, given it's RAM and compute throughput.
Anyway, let's ignore the author and just have the rest of the discussion continue or not.
Yes, we would like everything to be open. But then companies that make stuff would like to be able to pay their employees and make a bit of profit. Else none of this is possible.
Problem is, so does the P2. It has the SAME COG ceiling, and only slightly more Main Ram, in Graphics terms.
External RAM is thus mandatory, and P2 DDR support is not looking fast..... (or even that long term supply stable?)
Cypress are making noise about a 16mbit nvSRAM, which may give reduced pin count options, but data is sparse.
http://investors.cypress.com/releasedetail.cfm?ReleaseID=706144
Being nvSRAM, it also will not be cheap.
If we had just double the HUB RAM in the current P1, you would be shocked at the difference it would have made.
In any case, good time ahead for those who enjoy building displays, which is precisely the learning I was getting at.