Linux Super Page für Athlon Prozessoren

Nero24

Administrator
Teammitglied
Mitglied seit
01.07.2000
Beiträge
24.066
Renomée
10.446
  • BOINC Pentathlon 2019
  • BOINC Pentathlon 2020
  • BOINC Pentathlon 2018
  • BOINC Pentathlon 2021
Die aktuellen Prozessoren ab dem Intel Pentium unterstützen ein Features namens PSE, Page Size Extension. PSE erlaubt es einem Betriebssystem, Treiber oder Programm auf Pagegrößen im RAM zuzugreifen, die größer sind als die Standard-Page Größe, üblicherweise 4 KB. Der Athlon unterstützt wie alle x86-Prozessoren ab dem Pentium auch Page-Sizes von 4M Größe. Vorteil dieser Pageverwaltung ist ein niedrigerer Verwaltungsaufwand. Insbesondere Grafikkarten-Treiber, die auf große zusammenhängende Speicherbereiche zugreifen müssen, profitieren stark von PSE.

Nun ist jedoch die Verwendung von PSE auf Athlon- und Duron-Maschinen in der Vergangenheit heikel gewesen. Unter Windows 2000 konnte es etwa im Zusammenspiel mit nVidia-Treibern zu Freezes bei der Verwendung von Page Size Extension kommen, während WinXP damit problemlos zurecht kommt. Daher gibt es auch einen Patch für Windows 2000, der bei uns in den <a href="http://www.planet3dnow.de/faq/files/index.shtml#cpu">Files</A> heruntergeladen werden kann. Auch die Unterstützung durch die Linux-Kernel kam dadurch zwischenzeitlich ins Stolpern (wir <a href="http://www.planet3dnow.de/cgi-bin/newspub/viewnews.cgi?category=1&id=1011812808">berichteten</a>).

Nun jedoch gibt es frisch für den Kernel 2.4.19 einen Patch von <a href="http://shimizu-lab.dt.u-tokai.ac.jp/lsp.html" TARGET="b">Naohiko Shimizu</A>, der die Verwendung von Extended Pages mit diesem Kernel auch auf Athlon-Prozessoren stabil ermöglicht. Hier die Fixliste der letzten Patch-Versionen:<ul><i><li> 0815: Workaround with Athlon problems. </li><li>0814: Correct TLB populate routine for i386. I forgot to pass mm struct, and it may prevent SMP to work. </li><li>0810: New patch(020810 version) seems to work on i386 too. Call for testers. The performance boost on IA32 needs very large working set compared to the Alpha or Sparc64 ports. You can see them with transw.c benchmark with vm_align turned on.</li>
[..]
Athlon 4MB TLB bug workaround added. If you set the cpu type as K7 in the configuration, and turn on the super page, you will see the workaround check box just below the super page. Turning on, the kernel will not use invlpg instruction that is reported buggy in some Athlon processors. And some Athlon processors does not have pse bit but only pse36 in the cpu feature. It makes Linux confusing and I correct it by checking both bits</i></ul><b>Download:</b> <a href="http://shimizu-lab.dt.u-tokai.ac.jp/lsp/super_page-2.4.19_020815-alpha+sparc64+i386.patch" TARGET="b">Linux Super Page Patch 2002-08-15</a>
 
Bei was und wieviel Performance bringt denn eine Erhöhung der Page size?
 
Hauptsächlich Anwendungen, die große Mengen an Daten im Speicher herumschieben. Auszug aus der Page des Autors:

The benchmark results on EB164:

A 1000x1000 matrix transpose: 41% faster than the normal
A 1000x1000 matrix transpose(FORTRAN): 55% faster than the normal(with -funroll-loops -O2 options on g77)
1000x1000 matrix to matrix multiply 22% faster than the normal
(This is my code not the ATLAS nor CXML, they uses sub-block copy to reduce the translation misses and the effectiveness will be little.)
131072 point FFT ??% faster than the normal
This code is Ron Mayes FFT but I modified to repeat 10 times between the dtime(). The performance will vary run to run.
The benchmark results on DP264-667MHz(with g77):

A 1000x1000 matrix transpose(FORTRAN): 4.36 times faster than the normal kernel. 196.45MB/S through put
A point-Jacobi method(Himeno bench, FORTRAN): 7% faster than the normal kernel. 145.08MFLOPS
 
Zurück
Oben Unten