ATI Drivers for Linux, a headache

greylica

Senior member
Aug 11, 2006
276
0
0
Well done, I have a machine as I describe :

2xOPTERON 244
K8ND-L (NVIDIA CK804)
4 GIGS OF RAM
DVD WRITER
200 GIGS OD HDD

I put more memory to use Linux, course, 2 Gb per app does not satisfy the apetite for Blender with big mapps and big renders. Windows Limits to 2GB per App. (even 2003 server or Vista is caped to 2Gb per app in 32 bit mode, it's a defective C library in Windows returning calloc and malloc errors)
Beside this, I Tried to enable OpenGl in an ATI Radeon X1600 with 512 MB PCI express, and it happens this way on:

KUbuntu 32 bits -> recognizes fglrx but one processor disapeared, :(
Kubuntu 64 bits -> recognizes fglrx but does not enable OpenGL
Debian 32 Bits -> Does not recognizes chipset at all
Debian 64 bits -> recognizes chipset and processors no OpenGl at all
Mandriva -> Need proprietary drivers, but I am waiting for 2007 to see. 2006 PPK does not inform openGl to the softwares, Mesa used instead.
Kurumin -> nothing at all, only one processor supported :(

A friend of mine give me to a test an Nvidia FX7300 ( Not GS ) 256MB,
Everything works fine at all, why ?
And why Nvidia is so simpler than ATI ? Why I have to read a totally unnofficial tutorial to try to install Radeon drivers ?
It seems ATI does not Like Linux, why ?
After spend a day and a half, I sold the Radeon, go to H**L RADEON, GO !!!...
Headache terminated, Nvidia 7600 for me...

The only thing I am thinking is:
Why only ATI have this problems under linux, and *nix systems ???

Intel = easy
Nvidia = Easy
Sun XVR = Easy

Why ATI, why ???
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I put more memory to use Linux, course, 2 Gb per app does not satisfy the apetite for Blender with big mapps and big renders

It's 3G per process in Linux by default. And I believe on a 64-bit system 32-bit processes should be able to get the full 4G of VM for themselves.

Windows Limits to 2GB per App. (even 2003 server or Vista is caped to 2Gb per app in 32 bit mode, it's a defective C library in Windows returning calloc and malloc errors)

It's not defective, it's by design. The app has to be marked "large address aware" to go over the 2G mark, but if it is it should be able to address all 4G.

KUbuntu 32 bits -> recognizes fglrx but one processor disapeared,

Make sure you had a SMP enabled kernel installed.

Debian 32 Bits -> Does not recognizes chipset at all

That makes no sense, unless you installed Sarge which IIRC still defaults to a 2.4 kernel and even if you install a 2.6 kernel it's 2.6.8 which is quite old.
 

drag

Elite Member
Jul 4, 2002
8,708
0
0
sexy
Commercially supported Debian Testing + multimedia add-ons (all Free software). This is the one thing that has gotten my attention lately..

But irregardless, for Debian if your using it for stuff like this then you'd want to be using testing.

It's not defective, it's by design. The app has to be marked "large address aware" to go over the 2G mark, but if it is it should be able to address all 4G.

The app he is talking about is Blender, probably specificly blender's rendering or Yafray or Pov-ray, depending on what he is doing. I bet if you went to them and told them that you wanted to use more then 2gigs of RAM their answer would probably be 'use linux'.

But ya otherwise your right. It's not a Window's problem, Linux works in the same manner by default, I beleive. It's just easier to modify how it works in the kernel compile then it is in Windows.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
But ya otherwise your right. It's not a Window's problem, Linux works in the same manner by default, I beleive. It's just easier to modify how it works in the kernel compile then it is in Windows.

No, on a 32-bit system the default the VM split is 3/1 so each process gets 3G each and if you change that it'll be honored by all processes and not just those specially marked. On a 64-bit system I believe a 32-bit process should be able to use the full 4G of VM, but I haven't tested that myself.
 

greylica

Senior member
Aug 11, 2006
276
0
0
Now with the hardware problems solved (GO TO H**LL ATI WITH YOUR INUTILIZATED IP AND YOUR FAULTY DRIVERS, I WILL NEVER BUY THAT SH*T AGAIN !! ), and everything is working fine with my nvidia card, this is what happens:

KUBUNTU 32 Bits -> recognizes 4 GB RAM + 8 GB VM, 4 GB per app can be used in 32 bit Blender 2.42a ( more than 4GB crash -> calloc returns nill ), other proccess go normally trough VM if needed, Linux recognizes Page Adress Extension without any issues.

KUBUNTU 64 Bits - > Everything works fine too, but some programs where not ported to the platform yet, causing some problems, but is a question of time. Blender reaches 4GB per app too without problems in 32 bit mode ( I tested ), some problemes too with the VGA OpenGL acceleration. Blender 2.41 64 Bits works very fine, and other software have to be ported.
Well I am not an expert in compiling packages, then I will use 32 bit instead.

OHHH, SMP is very fine !!

quote:
____________________________________________________________________________________________________________________________________

It's not defective, it's by design. The app has to be marked "large address aware" to go over the 2G mark, but if it is it should be able to address all 4G.
____________________________________________________________________________________________________________________________________

:) Defective by design ? hauahuahaua then it´s DRMed, like the ATI cards.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
4 GB per app can be used in 32 bit Blender 2.42a

That's not possible, on a 32-bit system there's only 4G of VM total and 1G of that is reserved for the kernel so each process is limited to 3G. And since some of that address space is used by the binary and it's shared libararies, any mmap()'d areas, etc you should get a ceiling of somewhere just under 3G.
 

greylica

Senior member
Aug 11, 2006
276
0
0
Not on a PAE capable system, on a Page Adress Extension capable system, the M maped areas can use 48 bit of memory adress space. This is a Pentium II , Pentium Pro installed capability that was never used until P4 and Xeons came out. The only way to prove is to make screenshots of my screen and make a link here. I will do this when I come back to my Office, But I tested it and it is true, Blender reached 4GB. I tested a super subdivision ball, 2~2.5 Millions of quads.
 

silverpig

Lifer
Jul 29, 2001
27,703
12
81
I've never had too much trouble getting fglrx drivers to work. And I've done it on a number of systems with various cards too.

That being said, I did just get rid of my x800xl for a 7900gs so I could get decent performance, but installing the drivers requires about the same amount of work.
 

Robor

Elite Member
Oct 9, 1999
16,979
0
76
Originally posted by: drag
Why ATI, why ???

Because to ATI protecting their IP is more important then their customers being able to use their own hardware.

Which is why my next desktop will have an Nvidia card in it! :p
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Not on a PAE capable system, on a Page Adress Extension capable system, the M maped areas can use 48 bit of memory adress space. This is a Pentium II , Pentium Pro installed capability that was never used until P4 and Xeons came out. The only way to prove is to make screenshots of my screen and make a link here. I will do this when I come back to my Office, But I tested it and it is true, Blender reached 4GB. I tested a super subdivision ball, 2~2.5 Millions of quads.

Interesting, I wasn't aware that Linux had an equivalent to AWE.
 

drag

Elite Member
Jul 4, 2002
8,708
0
0
Maybe he is talking about the 4G/4G split options for kernels?

I know there were patches aviable for it and it was incorporated into *-hugemem kernels, but I don't know if it's in there.


Also if you have lots of RAM don't forget that it's pefectly possible to use a 64bit Linux kernel on a 32bit operating system. That way you can get a nice 4G/4G split going, probably without the performance penalty traditionally related to playing Linux kenrel memory games.
 

greylica

Senior member
Aug 11, 2006
276
0
0
Yes, Linux recognizes Page Adress Extensions (PAE processor capable ) and turn Adress Windowing Extensions (Tagged AWE) on isolating proccess like a common adress space, and it is transparent to the App. I've learned more about it in the IBM pages, I guess my problem is definetly solved, and it prooves the superiority of the Linux and *NIX O.S at all over any Windows, the limit is your machine, not the software.
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
Maybe he is talking about the 4G/4G split options for kernels?

Doubtful since that requires a custom kernel, AFAIK no distributions ship a kernel with that configuration.

Yes, Linux recognizes Page Adress Extensions (PAE processor capable ) and turn Adress Windowing Extensions (Tagged AWE) on isolating proccess like a common adress space, and it is transparent to the App.

No, i'ts not transparent. Any 32-bit app on a 32-bit kernel that wants to use >3G of VM has to be designed to do so on any OS. AWE is the name of a Window API that lets processes access >4G of VM, it's not a hardware enabled thing like PAE.

 

greylica

Senior member
Aug 11, 2006
276
0
0
Thats exactly what I am talking, Linux can enable PAE and pass the registers to the apps as well, AWE is a software to enable access adresses above the normal limit of the OS, but the Maximum allocation per app in 32 bit continues to be 4G (altough some softwares are specially designed to use AWE... I don't know if Blender is). I don know if windows have the tecnology because I've never saw it functioning in any of the Oses Microsoft did. Some times I saw in Windows properties a Page Adress Extension in the final line, but it's ilusory, PAE really does not function in Windows. And even if you put the /3GB switch on a boot.ini file the hardware memory is only 3GB for Windows.
In my installation, and tests, even Linux 32 bit was capable of recognize 6Gigs of RAM ( The maximum allowed for the K8ND-L is 12GB, But I only have 1Gb memory modules, and there is 6 slots, I populate them all to test ), and recognizes my /SWAP of 4GIGS. But Linux cut the /SWAP to only 2Gb. Even this way, the 32 bit Linux give me 8Gb of main memory usablefor 2 processors ( may be 4Gb per processors ? I will learn more), That is 6GB of hardware RAM and 2GB of SWAP. I guess the limit is in the kernel itself like you said before, but 8GB for 32Bits is suficient to Run a full instance of Blender, and I do not have right now a project bigger than 3.2 GB of main memory. ( Drawing a city :) )
It's interesting to see other opinions about the Linux and the kernel, I never know there is a 3Gb limit in the design of the Linux kernel, I was not aware of such, and I discovered it can possibly be a thing of the past.
 

greylica

Senior member
Aug 11, 2006
276
0
0
I found this:

http://kerneltrap.org/node/2450?from=50&comments_per_page=50

3. HIGHMEM solution for using 64 GB of memory

This is enabled via the PAE (Physical Address Extension) extension of the PentiumPro processors. PAE addresses the 4 GB physical memory limitation and is seen as Intel's answer to AMD 64-bit and AMD x86-64. PAE allows processors to access physical memory up to 64 GB (36 bits of address bus). However, since the virtual address space is just 32 bits wide, each process can't grow beyond 4 GB. The mechanism used to access memory from 4 GB to 64 GB is essentially the same as that of accessing the 1 GB - 4 GB RAM via the HIGHMEM solution discussed above.
 

greylica

Senior member
Aug 11, 2006
276
0
0
Also I found this:

http://www.dharwadkar.com/weblog/fc6_kernel

Since Kubuntu/Ubuntu/Xubuntu is using 2.6.18.X Kernel, I guess the precompilation haves the PAE enabled by dafault in some architetures.
What is interesting too, there is a penalty for using this between 3~6% of performance loss. But... 64Gb :) . Windows = 2GB, Linux = 4GB per app.

Defective by design = DRMed, artificially limited...
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
I don know if windows have the tecnology because I've never saw it functioning in any of the Oses Microsoft did. Some times I saw in Windows properties a Page Adress Extension in the final line, but it's ilusory, PAE really does not function in Windows.

What in the hell are those sentences supposed to mean?

And even if you put the /3GB switch on a boot.ini file the hardware memory is only 3GB for Windows.

No, the /3GB switch changes the VM split from 2/2 to 3/1 and has absolutely nothing to do with the amount of physical memory Windows will see or use.

But Linux cut the /SWAP to only 2Gb.

That doesn't make sense, swap partitions can be much larger than 2G these days. I just created a test file of 5G and turned it into swap just fine on 32-bit Linux.

Even this way, the 32 bit Linux give me 8Gb of main memory usablefor 2 processors ( may be 4Gb per processors ? I will learn more), That is 6GB of hardware RAM and 2GB of SWAP. I guess the limit is in the kernel itself like you said before, but 8GB for 32Bits is suficient to Run a full instance of Blender, and I do not have right now a project bigger than 3.2 GB of main memory. ( Drawing a city )

Swap doesn't get tacked onto the end of your main memory, if you have 6G of physical memory that's what you have no matter how much swap you have. And I didn't mention any limits of 8G that I remember.

It's interesting to see other opinions about the Linux and the kernel, I never know there is a 3Gb limit in the design of the Linux kernel, I was not aware of such, and I discovered it can possibly be a thing of the past.

It's a hardware limit and not a Linux design limit, on 32-bit systems you can only address 4G of memory directly so that's the max amount of VM you can have without PAE. Since the kernel needs some of that VM for itself it takes 1G and lets each userland process have 3G for itself. Even on a 64-bit system there's a similar split I believe, but the amounts are so large that no one will notice them for a very long time.

This is enabled via the PAE (Physical Address Extension) extension of the PentiumPro processors. PAE addresses the 4 GB physical memory limitation and is seen as Intel's answer to AMD 64-bit and AMD x86-64.

Whoever wrote that is an idiot, Intel has been shipping PAE enabled processors since around the Pentium Pro. Intel's answer to AMD64 is AMD64 although they renamed their implementation of it to EM64T.

Since Kubuntu/Ubuntu/Xubuntu is using 2.6.18.X Kernel, I guess the precompilation haves the PAE enabled by dafault in some architetures.

Nope, i386 is the only architecture that PAE applies to and neither HIGHMEM4G nor HIGHMEM64G are enabled by default on 2.6.18.

What is interesting too, there is a penalty for using this between 3~6% of performance loss. But... 64Gb

Yea, it's generally not a good idea since now it's better to just get a 64-bit system.

Windows = 2GB, Linux = 4GB per app.

With PAE and AWE Windows can go above the 2G limit too, but the app has to be written to use AWE to address the extra memory. To get it up to 3G you just have to boot with the /3GB switch and mark the binary as 'large address aware'.

Defective by design = DRMed, artificially limited...

DRM stands for Digitial Rights Management so I don't see how that applies here.