Open-Source Graphics Processor
kickstarter.com
kickstarter.com
- prices seem reasonable for doing this as a commercial project
- badly written intro that assumes far too much
- seems to be based on 2000-era technology
- not actually delivering hardware, so very limited practical use
- the community that demands open hardware on principle is a lot smaller than they think, so this probably won't get funded
But we're not used to kickstarting software projects at normal rates, we're more used to founders working for free to prototype something and using kickstarter to push it into production. This misses that last (even more expensive) stage.
So there is a pretty nice FPGA + Dual ARM9 chip, the Zyng7020 which is used in the Parallela and the Zedboard[1]. This has a pretty decent amount of FPGA fabric, and it could use an open source frame buffer to go along with the core. One of the hugely annoying things about Xilinx parts is that their design flow is insanely over complex.
That said, the comments here and elsewhere point out another interesting dichotomy. There are people who want a fully open Tegra4, and there are people who just want a frame buffer they can program. The latter is an undergraduate FPGA project, the former is a multi-million dollar team effort.
When the two groups talk about what needs to be done there are heated arguments of 'too much' or 'too little'.
These folks seem to have a design already "done" (in the sense that they have used it for some customers), I'm wondering if a more effective path might be to team up with Xilinx or Altera to put together some IP that that can be part of their design suites for free that would enable non-corporations to implement a decent frame buffer. That would just be a port of what they've got and perhaps some design notes around it. Get Digilent to build a demo board and poof, your good to go.
[1] www.zedboard.org
[1] http://www.kickstarter.com/projects/adapteva/parallella-a-su...
Could you elaborate?
This is not something that will be remotely competitive with modern GPUs. Their $1,000,000 stretch goal would be to implement a modern shader engine, but given that they aren't offering any actual hardware, I'm not sure how they hope to get to that point.
The $400k goal targets Direct3D 8. That appears to date to about 2000: http://www.gamedev.net/page/resources/_/technical/directx-an...
(I'm impressed that article is still up from 2000!)
$1m is not totally unreasonable for the shader-based design at commercial rates. Last time I did a back-of-the-envelope calculation for a shader-capable fully open graphics card delivering working silicon, I came up with two years, $2.5m, and a hiring shortlist.
ps: instead of parallel compute units for vertex/pixel shader.
ps2: I'd like to see an open hardware RISC movement for GPU. I wish for a 'simple' parallel array of visual oriented floating point primitives, very small and regular, but very open so that people can write compilers and drivers with ease. As opposed to very potent but obscure gpu followed with crippled drivers. Just enough to get fast yet low power css/dom like systems (with little bonus like path rendering) to help lift the visual work away from RPI-class SoCs.
The Raspberry Pi GPU is actually very powerful, but not in ways that help you with CSS/DOM; I don't think there's much work been done to accelerate layout in 3D accelerators other than at the very basic level of glyph rendering and image uncompression.
The higher tiers look more interesting, but I don't know how commercially interesting they are. The Kickstarter is so dry, I'm assuming they're targeting researchers, enthusiasts or people who would otherwise spend a lot of time making their own GPU. There's no reason given on the page why I should be interested in helping them, as someone who is only vaguely knowledgable in the area. It seems really specific, and I can't tell if those people are out there, or they're just asking for money from whoever wanders by.
Finally, there's the licensing. If there is a commercial application for this, they might make a ton of money off a 10K tier for a non-GPL license.
This isn't web development. Sorry.
I really don't get the criticism about the lack of a board as part of the KS rewards. If you are doing FPGA development at this level, the cost of fabricating a board is a rounding error when compared to R&D costs.
At the really low end a sufficiently hacked up PIC (even the older ones) can bit bang out NTSC composite B/W video, crazy as that probably sounds. You can compute during the retrace intervals. So thats the $2 market.
One of the most successful / popular / bug free uses of the Propeller chip is as a graphics coprocessor outputting analog VGA, it does quite a good job of that. The electronics for the prop-vga connection are some peculiar value resistors, and a VGA jack, little else. So thats the $10 market.
If you want something more advanced than a prop as a graphics copro, you use a $25 rasp-pi.
Much above $25 and you're looking at little embedded PCs/home theater PCs. Look at what the mythtv guys are using for frontends, which over the last decade or so has gone from pretty exotic to boring COTS, for a couple hundred $.
So its a market that's fuller than you know and has had historical issues.
To some extent you run into problems with "maker" class processors such as memory limitations. If you want monochrome full VGA and your arduino only has 2 K of ram or whatever it is (its probably 2 ords magnitude too low whatever the exact spec is) you're not going to be doing a simple frame buffer. And if you hack a rasp-pi into being your graphic copro, then other than I/O limitations there seems to be no point in making an arduino the "main" processor if the rasp-pi is doing all the work.
If you look at the various tiers of this kickstarter you can see you'll have to go up to 600k$ to fund a proper ARM SoC 3D IP with AXI support. And since it's a kickstarter you have absolutely no way of knowing what the end product will look like.
I can't imagine any company betting that much money for RTL code with absolutely no warranty about what the end result will look like and if it's going to even fit in your SoC.
And the code being open source is actually not an advantage since it means all other constructors can then integrate the same GPU in their designs for free.
If it gets funded and it ends up working correctly I'm sure many companies will be interested to try and use it in their designs but I really doubt they'd fund it.
The only way they could do that is if they knew they could market their GPU to a broader audience and sell many units. The problem is I don't see who could be interested in buying a low-perf stand-alone PCI GPU which may very well end up costing more than a TegraII due to the small number of units.
Modern ASICs are built around blocks connected by a system bus so it's actually quite a clear cut.
It was also a more complicated architecture than it needed to be IMHO due to splitting functions between two FPGAs, one for the graphics bit and the other for the bus interface.
I would rather see an FPGA being used as a general purpose DSP with the ability to run shader code in software, perhaps inside a runtime written with Go or Erlang. I've thought about doing a kickstarter to emulate, say, a 256 core processor with an FPGA. The main problem is that the last time I wrote VHDL was in 1999 and I've become too accustomed to writing mainstream code which mostly involves putting out fires.
I think a highly parallel multiprocessor like this to make a break with the past and explore more scalable approaches like ray tracing would be good for the world. And by ray tracing I mean "not rasterization". I realize that RT has its faults and that there are many other approaches that do things like soft lighting/shadows and depth of field but they are difficult to explore now because processors are still effectively single threaded.
(it's not as powerful as it sounds; memory bandwidth ends up being a major constraint, and programming all those cores effectively is hard in itself)
http://www.intel.com/content/www/us/en/processors/xeon/xeon-...
I just don't know if anything from Intel will be cost-effective because it's going to be over-engineered to not compete with existing products.
For example caching is largely useless with something like Go that is sending copies of data around. I don't know if it's possible to use copy-on-write with so many cores.
It's just a hunch but I think multiprocessing in the future is going to use something like content addressable storage and not worry so much about a complex router or interconnect. Only the most naive algorithms will probably win out, so basically chop the screen up into a bunch of 16x16 squares and send them to each processor.
Also I think it will be really awesome to be free of middleware and be able to run physics or AI directly. I've even thought about trying to write something to emulate a bunch of cores on my computer so I can at least play with the algorithms until affordable hardware arrives.
As a side note however, I have one large complaint about the kickstarter video. It lacks enthusiasm, and it almost look like the speaker dreads the camera.
This seems to have no answer to either that matters to normal people.
If a Linux desktop, phone, or tablet, with at least "integrated graphics" level performance, could be produced as open source, that might actually be interesting. But nothing here looks like that's going to happen.
http://en.wikipedia.org/wiki/Milkymist
Case closed.
I can't believe they have never seen a smartphone recently, so they know what cheapo hardware is capable of pushing nowadays. Yet this exists.
So what is it that is exiting here but fly high over my head ?
I hope the kickstarter project is Wishbone compatible so it can talk to any CPU core I'd like to synth and they're not just making a computer card or whatever, and I hope it ends up license compatible with opencores.
The lack of accelerated graphics is a kind of a weird hole in free FPGA tech, everything else you can imagine seems available.
So for example if I wanted to make an ethernet connected stepper motor controlling FPGA based CNC machine controller, which is not so far fetched, every major software component is off the shelf at opencores except for the software I'd write for the synthesized CPU and ... accelerated graphics if I want a 3-d pix of what the machine is doing / done / plan to do. All the rest, CPU cores, ethernet, stepper drivers, PS/2 drivers for keyboard mouse, all thats off the shelf. It would of course be cheaper to use a COTS desktop PC or a rasp-pi but the point is if I wanted to use a FPGA I almost could except for no 3-d graphics.
I'm curious how the framerate could be improved?
Would the reason it's kind of laggy at the higher resolutions be due to the max clock speed of the FPGA or other factors like the number of logic units?
And way down at the bottom it says: >Software drivers are a challenge, and we will work on providing some level of drivers, with the hopes that the community takes them up and pushes them to new levels and provides problem reports to us.
If I had to guess, it'd be that these guys really want to open source it, but don't have the revenue stream to do so. So the kickstarter is to see if the idealists will put their money where their mouth is (so that these guys can buy food and have a roof over their heads while working on opening up the hardware).
Though now that I know they're using benchmarks from last century (and struggling), I'm even more confused about why this is exciting.
It's exciting because it's open hardware.
Does open source actually innovate in areas like making cars? Does closed-source, private industry competition generate better innovation. Are there correlation and/or causation in either approach with new innovation? In other words, maybe it's nice to open discuss ideas but does actual implementation matters if it weren't open source? With software, we certainly have really terrible open source projects that people will use just because it's handy (I am looking at you pycrypto), but in the end we have to build another one. Whereas proprietary software may include custom "pycrypto" library that has private cryptanalysis done on it. It is still safe and useful.