rickyjames
Posts: 80
Joined: Wed Sep 07, 2011 6:16 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Tue Feb 07, 2012 1:45 pm

I put a reference to this in the comments of the front page datasheet posting, but I wanted to repeat it here for further isolated discussion.  There is an effort called the Lima Project to reverse engineer the proprietary "Mali" family of GPUs that are found on ARM processors.  Is the Rpi using a so-called "Mali" GPU?  Would this effort be of use in furthering Rpi development projects?  Any admin comments or thoughts?

http://www.phoronix.com/scan.p.....#038;num=1

http://www.phoronix.com/scan.p.....px=MTA0OTQ

Neil
Posts: 98
Joined: Thu Sep 29, 2011 7:10 am
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Tue Feb 07, 2012 4:51 pm

rickyjames said:


Is the Rpi using a so-called "Mali" GPU?


No.

User avatar
Jessie
Posts: 1754
Joined: Fri Nov 04, 2011 7:40 pm
Location: C/S CO USA

Re: Lima Project To Reverse Engineer ARM GPUs

Tue Feb 07, 2012 8:09 pm

rickyjames said:


Is the Rpi using a so-called "Mali" GPU?  Would this effort be of use in furthering Rpi development projects?  Any admin comments or thoughts?


No and No.

Engeneering a new SOC would not benefit the foundation in any way.  It would cost too much money for them to get a custom SOC made at a foundry and packaged.  Plus I beleave it may be a direct contractural violation for some of the members who work at Broadcom.

The ARM market is already so competitve it would be hard to beat some of the bulk prices out there.  Plus the Mali is a mediocre product at best anyway.  After you reverse engeneer the Mali then what are you going to do make your own Mali silicone and get your ass sue'd off by ARM holdings?

Benedict White
Posts: 224
Joined: Sat Dec 24, 2011 12:24 am

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 12:17 am

Jessie, I think you misunderstand.

There are efforts to reverse engineer the Mali GPU's blob, not the actual processor to make it entirely open source in the same way NVidia GPU's were reversed engineered.

There is no requirement to make the SoC, as it is open source for existing GPU's.

That said James H has "called out" the open source community and challenged them to reverse engineer the blob on the Broadcom GPU by saying they couldn't do it. We will have to see if they take up the challenge.

User avatar
Chromatix
Posts: 430
Joined: Mon Jan 02, 2012 7:00 pm
Location: Helsinki

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 12:57 am

They would probably start with the message-passing interface, so as to be able to write open-source userspace graphics stacks.  That would be the bulk of the simple utility gain, since it would allow easier integration of the accelerated APIs with X11, or indeed with alternative operating systems.

Reverse-engineering the GPU internals would undoubtedly be more difficult and maybe less rewarding - but I very much doubt that it is impossible, since it only takes one or a very few extremely clever people to get the correct insight, and I have no doubt at all that such people exist - somewhere.  The utility level here depends on how much functionality Broadcom manages to expose to users - the main missing feature currently is GPGPU, eg. OpenCL, which is especially attractive since the CPU is relatively weak.

Or maybe some depraved soul just wants to recreate the Amiga - another machine known for having vastly more powerful graphics and sound hardware than CPU.
The key to knowledge is not to rely on people to teach you it.

Neil
Posts: 98
Joined: Thu Sep 29, 2011 7:10 am
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 8:45 am

Chromatix said:

the main missing feature currently is GPGPU, eg. OpenCL, which is especially attractive since the CPU is relatively weak.
Actually it is possible to use the shader engines already, writing GPGPU code the old-fashioned way in GLSL (this was discussed on another thread some time ago).  Considering the shader engines in the 2835 have been designed to execute GLSL then that is the most effective (as in, to get the highest GFLOPS) way of using them: phrase your data and algorithms in a way that best matches the way the shader engines work.  OpenCL provides simplification, but there's going to be a cost associated with that simplification.

I guess it depends on what you want: easy and slow, or fast and fiddly.

Now, an OpenCL to GLSL compiler... that would be interesting.

Neil

tufty
Posts: 1456
Joined: Sun Sep 11, 2011 2:32 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 9:26 am

~Neil~ said:


Now, an OpenCL to GLSL compiler... that would be interesting.


...not to mention being significantly 'easier' than trying to reverse engineer an (if memory serves) ~18MB blob carrying out unknown and undocumented tasks, written in some unknown and undocumented instruction set, which deals with an unknown and undocumented piece of hardware.

Reverse-engineering parts of the message passing protocol should be doable (for varying values of 'doable') for those (like myself) who are developing other operating systems but who can't provide a compatibility veneer for the Linux binaries - that said, you'll probably only get part of the functionality at best (reverse-engineering the shader compiler will be an "amusing" exercise, for example).

If you're really wanting to do GPU programming for the Pi, and can't be arsed to learn about doing it in OpenGL, a BrookGPU port might be a more appropriate starting point.  No, it doesn't give you the heterogenous view of GPU+CPU = compute resources that OpenCL does, but it should free up a significant amount of compute power.

Simon

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23683
Joined: Sat Jul 30, 2011 7:41 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 9:32 am

Benedict White said:


Jessie, I think you misunderstand.

There are efforts to reverse engineer the Mali GPU's blob, not the actual processor to make it entirely open source in the same way NVidia GPU's were reversed engineered.

There is no requirement to make the SoC, as it is open source for existing GPU's.

That said James H has "called out" the open source community and challenged them to reverse engineer the blob on the Broadcom GPU by saying they couldn't do it. We will have to see if they take up the challenge.


TBH, I haven't put out a challenge. I think I just said I didn't believe it was really possible to reverse engineer the blob. If somebody does get anywhere, I'm sure Broadcom would be interested in an interview.

Just as a hint, it took  a team of about a hundred highly competent software engineers to write the blob and it's taken 7 years so far (through all iterations of the Videocore design). And they had access to the hardware specs, and the instruction set docs.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

joeofloath
Posts: 21
Joined: Mon Feb 06, 2012 3:27 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 3:20 pm

JamesH said:


Benedict White said:


Jessie, I think you misunderstand.

There are efforts to reverse engineer the Mali GPU's blob, not the actual processor to make it entirely open source in the same way NVidia GPU's were reversed engineered.

There is no requirement to make the SoC, as it is open source for existing GPU's.

That said James H has "called out" the open source community and challenged them to reverse engineer the blob on the Broadcom GPU by saying they couldn't do it. We will have to see if they take up the challenge.


TBH, I haven't put out a challenge. I think I just said I didn't believe it was really possible to reverse engineer the blob. If somebody does get anywhere, I'm sure Broadcom would be interested in an interview.

Just as a hint, it took  a team of about a hundred highly competent software engineers to write the blob and it's taken 7 years so far (through all iterations of the Videocore design). And they had access to the hardware specs, and the instruction set docs.


Never underestimate the power of nearly every neckbeard in the world

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23683
Joined: Sat Jul 30, 2011 7:41 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 5:09 pm

Throwing lots of people at a problem doesn't make the problem any easier!
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

User avatar
johnbeetem
Posts: 945
Joined: Mon Oct 17, 2011 11:18 pm
Location: The Mountains
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 8:25 pm

JamesH said:


Throwing lots of people at a problem doesn't make the problem any easier!


Just out of curiosity, are you referring to the "army of neckbeards" or your "hundred highly competent software engineers" or both? 

I love this quote by Dr. Hermann Hauser -- one of ARM's founders -- about the creation of the ARM1 processor:


When we decided to do a microprocessor on our own, I made two great decisions.  I gave them two things National, Intel, and Motorola had never given their design teams: the first was no money, the second was no people.  The only way they could do it was to keep it really simple.

[From D. Manners, "How ARM1 Got Built by Steve Furber", Electronicsweekly.com, 2007.]


User avatar
abishur
Posts: 4477
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 9:12 pm

John Beetem said:


JamesH said:


Throwing lots of people at a problem doesn't make the problem any easier!


Just out of curiosity, are you referring to the "army of neckbeards" or your "hundred highly competent software engineers" or both? 


As more people gather together the collective intelligence of the group lowers to the person with the lowest I.Q.
Dear forum: Play nice ;-)

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23683
Joined: Sat Jul 30, 2011 7:41 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Wed Feb 08, 2012 9:31 pm

John Beetem said:


JamesH said:


Throwing lots of people at a problem doesn't make the problem any easier!


Just out of curiosity, are you referring to the "army of neckbeards" or your "hundred highly competent software engineers" or both? 


Either or both. The real difficult part of the SoC is the power consumption - this is the lowest powered mobile GPU available. Whilst doing all the tasks it can do isn't that difficult (well, tbh it is, but most mobile GPU's do all this stuff), doing at the sort of power levels the Videocore achieves is really something. The die is also much smaller than equivilent GPU's in other SoCs.

Although as HH says, sometimes you just need one or two good engineers. Nowadays its not so relevent - chips are just too complicated. Individual blocks can be done that way, not whole chips and the associated software.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

User avatar
Jessie
Posts: 1754
Joined: Fri Nov 04, 2011 7:40 pm
Location: C/S CO USA

Re: Lima Project To Reverse Engineer ARM GPUs

Thu Feb 09, 2012 5:52 am

Benedict White said:


Jessie, I think you misunderstand.

There are efforts to reverse engineer the Mali GPU's blob, not the actual processor to make it entirely open source in the same way NVidia GPU's were reversed engineered.


Yes and I recall these nVidia drivers to be massive heaps of crap.  So what you all want to do is reverse engeneer a driver (the binary blob) to make something slower that crashes all the time.

mccp
Posts: 26
Joined: Thu Dec 01, 2011 8:53 am
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Thu Feb 09, 2012 1:47 pm

Abishur said:


As more people gather together the collective intelligence of the group lowers to the person with the lowest I.Q.


OMG what does that mean about the I.Q. of the Facebook collective then?

Oh, maybe that should be obv.

Narishma
Posts: 151
Joined: Wed Nov 23, 2011 1:29 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Thu Feb 09, 2012 1:50 pm

Jessie said:


Benedict White said:


Jessie, I think you misunderstand.

There are efforts to reverse engineer the Mali GPU's blob, not the actual processor to make it entirely open source in the same way NVidia GPU's were reversed engineered.


Yes and I recall these nVidia drivers to be massive heaps of crap.  So what you all want to do is reverse engeneer a driver (the binary blob) to make something slower that crashes all the time.


Well, for some people it's more important to have a slow and open driver than a fast and closed one. For others it may not matter if it's fast at all because their project doesn't have a need for a fast GPU.

tufty
Posts: 1456
Joined: Sun Sep 11, 2011 2:32 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Thu Feb 09, 2012 2:01 pm

Narishma said:


Well, for some people it's more important to have a slow and open driver than a fast and closed one. For others it may not matter if it's fast at all because their project doesn't have a need for a fast GPU.


In which case they should probably go and buy something that uses one of the multitude of GPUs that have totally open firmware.

Oh.

User avatar
abishur
Posts: 4477
Joined: Thu Jul 28, 2011 4:10 am
Location: USA
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Thu Feb 09, 2012 4:05 pm

now now, we don't want to squash creativity here.  If people want to try to "crack" the GPU, then go for it!  I mean there's really only two possibilities here

1) They crack it and it is great/crappy but it is "open" (open in this case meaning that the people who cracked it understand it, but it's not like anyone using it understands it)

2) They never crack it and waste no ones time but there own

Either way they're not harming anyone by the attempt there's really no need to try to argue them out of it
Dear forum: Play nice ;-)

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23683
Joined: Sat Jul 30, 2011 7:41 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Thu Feb 09, 2012 5:14 pm

What he said!
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

Benedict White
Posts: 224
Joined: Sat Dec 24, 2011 12:24 am

Re: Lima Project To Reverse Engineer ARM GPUs

Thu Feb 09, 2012 10:58 pm

Jessie said:


Benedict White said:


Jessie, I think you misunderstand.

There are efforts to reverse engineer the Mali GPU's blob, not the actual processor to make it entirely open source in the same way NVidia GPU's were reversed engineered.


Yes and I recall these nVidia drivers to be massive heaps of crap.  So what you all want to do is reverse engeneer a driver (the binary blob) to make something slower that crashes all the time.


Well, the OS Nvidia drivers I have used seemed OK. They also got Nvidia to play nice and keep their drivers up to date.

User avatar
cnxsoft
Posts: 191
Joined: Sat Oct 15, 2011 2:33 pm
Location: Chiang Mai, Thailand
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Sat Feb 11, 2012 4:16 am

This should be in the off-topics section, but they've just released the experimental source for the Lima drivers: https://gitorious.org/lima

User avatar
Vindicator
Posts: 314
Joined: Sat Sep 17, 2011 11:10 pm
Location: Susanville Ca USA
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Sat Feb 11, 2012 7:26 am

Not sure why there has been so much confrontation in this thread but the last post by 2 of the admins seems to sum it up.

It could be that the community may benefit in the future from this, or nothing may be really achieved in the first place that is generally useful to the masses.

Confrontation is not going to change either.

You get my support either way it turns out.
If you are more worried about ,spelling, punctuation or grammar you have probably already missed the point so please just move on.

User avatar
Lob0426
Posts: 2198
Joined: Fri Aug 05, 2011 4:30 pm
Location: Susanville CA.
Contact: Website

Re: Lima Project To Reverse Engineer ARM GPUs

Sat Feb 11, 2012 8:15 am

If they are able to reverse engineer it, then Broadcom may learn some new things about the blob.

If the the whole project devolves to the lowest IQ then you better hope there are no Chimpanzees in this forum.

P.S.

I knew a man (in prison) who had a tested IQ of 74, lower than a chimpanzee. His crime partner would have him crawl through the doggie door of a house, then have him haul the TV. Stereo etc out to the  car. If the police showed up he drove off and left this guy to distract the police. Nowadays he would not end up in prison as he is a prime candidate to be abused inside the walls. he was developmentally disabled as it is called nowadays, then he was considered mentally retarded.
512MB version 2.0 as WordPress Server
Motorola Lapdock with Pi2B
Modded Rev 1.0 with pin headers at USB

http://rich1.dyndns.tv/
(RS)Allied ships old stock to reward its Customers for long wait!

NAB
Posts: 32
Joined: Wed Sep 14, 2011 6:52 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Sat Feb 11, 2012 10:29 am

Lob0426 said:


<snip>

I knew a man (in prison) who had a tested IQ of 74, lower than a chimpanzee. His crime partner would have him crawl through the doggie door of a house…

<snip>


So, let me make sure I understand you correctly… What you're saying is that we should find the forum member with the lowest IQ, get them to crawl into Broadcom's offices by way of a doggie door/air ducting/whatever and steal the source and docs for the blob and GPU. If they get caught, they won't be imprisoned and if they don't, we get the information we need?

Interesting idea, but not for me!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 23683
Joined: Sat Jul 30, 2011 7:41 pm

Re: Lima Project To Reverse Engineer ARM GPUs

Sat Feb 11, 2012 11:32 am

Lob0426 said:


If they are able to reverse engineer it, then Broadcom may learn some new things about the blob.

.


Well, we are always learning stuff about the hardware (not the blob - we have the source for that!)- we had a recent bug on the project I am working on that nobody had seen before (been there some years!). However, it took the combined efforts of a smart softie, dedicated testing, reading the RTL for the chip and lots of chats with the guys who designed the chip to figure it out. It was *undocumented* behaviour of one register (out of 18k registers I think is the current estimation).

Anyone trying to reverse engineer the blob simply doesn't have that level of information.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

Return to “General discussion”