Shop OBEX P1 Docs P2 Docs Learn Events
Ras-Pi closed platform, difficult to develop open code for, and about that P2! — Parallax Forums

Ras-Pi closed platform, difficult to develop open code for, and about that P2!

potatoheadpotatohead Posts: 10,261
edited 2012-09-27 18:13 in Propeller 1
http://whitequark.org/blog/2012/09/25/why-raspberry-pi-is-unsuitable-for-education/
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

  • Heater.Heater. Posts: 21,230
    edited 2012-09-25 20:45
    potatohead,

    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.
  • Heater.Heater. Posts: 21,230
    edited 2012-09-25 21:04
    potatohead,

    Just getting down to reading your linked to article:
    Of course, sources (VHDL or Verilog ones) of the ARM cores themselves are not accessible to general public, and therefore you cannot learn anything about the innards of the CPU. (CPU architects don’t appear from thin air. No, really.)

    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).
  • rod1963rod1963 Posts: 752
    edited 2012-09-25 21:17
    I don't see the relevancy of Broadcom's closed GPU, it hasn't stopped the Raspberry from taking off like a scalded cat and getting the sort of positive write ups that any start up would love. The same with Nvidia's single chip GPU monster like the Tegras.

    I do hope Chip and company port OpenGL ES to the P2 if they plan to use it as a GPU.
  • jmgjmg Posts: 15,173
    edited 2012-09-25 21:43
    potatohead wrote: »

    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.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-09-25 21:59
    Whoh, hold on a moment... I have no inclination to fully open everything for education. Now, it is true that the computers I learned on were completely open, but that was a simpler time too.

    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.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-09-25 22:10
    @Heater. I too largely advocate #1 as a strong requirement. Lean, nonproprietary education is best case investment. When I compare the old Apple 2 to the other more closed systems, the best learning happened on the Apple, despite it having many technical limitations.

    *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.
  • jmgjmg Posts: 15,173
    edited 2012-09-25 22:50
    potatohead wrote: »
    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.
  • Heater.Heater. Posts: 21,230
    edited 2012-09-26 03:10
    I have a feeling you are going to be disappointed if you expect the PII's graphics performance to come anywhere near that of the Pi's GPU. Especially when it comes to 3D OpenGL. The RAM, the clocks speed and the sheer number of processors is just not there.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-09-26 06:45
    I personally don't think it's even close to a dedicated GPU. What I do think is it can perform nicely on a wide variety of simple, practical display tasks, largely 2D. For visualization purposes an OGL type language would be quite useful, just as it was early on elsewhere. After looking over the OGL ES, yeah. Agreed. A subset would be damn cool though. Maybe simple too.
  • pik33pik33 Posts: 2,367
    edited 2012-09-26 10:33
    This demo

    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.
  • rwgast_logicdesignrwgast_logicdesign Posts: 1,464
    edited 2012-09-26 13:13
    Ok so firstly let me say I only know bits and pieces about the prop 2, I dont dare read the hole thread! Basically I know whats on the main site as of a few mnths ago if im getting anything wrong let me know.

    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.
  • rwgast_logicdesignrwgast_logicdesign Posts: 1,464
    edited 2012-09-26 13:18
    I also wanted to add that the problems GPUs are solving on the PC dont lend themselves well to most standard architectures, In the hardware world I think an FPGA is more than capable if not better at being able to do this kind of highly parallel processing.
  • RobotWorkshopRobotWorkshop Posts: 2,307
    edited 2012-09-26 14:18
    potatohead wrote: »

    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.
  • RobotWorkshopRobotWorkshop Posts: 2,307
    edited 2012-09-26 14:28
    I looked at a couple of the other blogs and this one from the same author jumped out:

    http://whitequark.org/blog/2011/10/07/my-first-factory-made-pcbs/
  • rod1963rod1963 Posts: 752
    edited 2012-09-26 19:25
    The author one Mr. Zotov has totally missed the point of the Raspberry and flames ARM, Raspberry in the process.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-09-27 10:42
    Totally, I regret linking him. Really, the GPU comment stuck out and I thought it an interesting discussion. Sheesh. (I'll not do that again soon)

    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.
  • CircuitsoftCircuitsoft Posts: 1,166
    edited 2012-09-27 14:05
    His complaints against ARM are rather odd. You can do anything, within reason, with a good book on ARM architecture. His complaints on the particular Broadcom chip in used on the RPi, I think are valid, namely that (a) you need code on the GPU in order to start the CPU and (b) the GPU instruction set is not public. Therefor, closed-source SW is required to start it.
  • Heater.Heater. Posts: 21,230
    edited 2012-09-27 14:16
    I hope the guy is not using a PC with a closed source BIOS and not using any graphics card that requires a closed source driver and not using any other devices that require closed source firmware (WIFI chipsets etc). I hope he is not using Windows or a Mac.

    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.
  • jmgjmg Posts: 15,173
    edited 2012-09-27 16:50
    potatohead wrote: »
    Both of these things are possible on P1, but it lacks RAM to do them at any real resolution...

    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.
  • potatoheadpotatohead Posts: 10,261
    edited 2012-09-27 18:13
    If people want a big frame buffer, that's going to be fill rate limited and external. For other kinds of display generation techniques, the more roomy HUB puts a lot more on the table, as does the extra speed.

    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.
Sign In or Register to comment.