PowerPC Apple как машинка для игры в альтернативный Linux

Форум для линуксоидов

Moderator: Shaos

User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
Shaos wrote:
Shaos wrote:
cr0acker wrote:Ну и где результаты тестов?
Ну результаты тестов есть на сайте автора:
http://www.freevec.org/functions
Свои как подготовлю - так выложу ;)
Выборочно запускаю тесты автора на своих G4-маках - скоро выложу графики :roll:
Вот первая партия тестов для PowerBook G4 1.67 GHz функций bmove512, memcpy, memset, strcpy, strlen:

http://shaos.net/blog/2008/04/some-vect ... ok-g4.html

Как видно эффект от векторизации этих стандартных функций на этом компе достигает 4 и более раз!
Вот вторая партия тестов - теперь для PowerMac G4 400 MHz:

http://shaos.net/blog/2008/04/some-vect ... ac-g4.html

При частоте процессора в 4 раза меньше скорость выполнения векторизованных стандартных функций варьируется от 3 до 6 кратной разницы...

P.S. Всё-таки судя по номеру чипа в PowerBook стоит G4+, а не G4, как в PowerMac (главное отличие - кеш L2 у G4+ меньше, нахоится на чипе и работает на частоте процессора, а у G4 находится снаружи чипа и работает на вдвое меньшей частоте нежели частота процессора).
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Сравнение быстродействия целерона 2.7 ГГц c поверпц G4 400 МГц и 1.67 ГГц через memcpy:



Как видно векторизированный memcpy на PowerPC 1.67 ГГц почти в 2 раза быстрее целерона 2.7 ГГц, который в некоторых случаях даже сравним по скорости с векторизированным memcpy на PowerPC 400 МГц. Также оказалось что memcpy векторизирован по умолчанию в Mac OS X (тестовая прога собиралась без каких бы то ни было оптимизирующих ключей). Вот текст тестовой программы:

Code: Select all

/* Alexander Shabarshin - 26 Apr 2008 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

#define POOLSIZE 8*1024*1024
#define POOLSTEP 128*1024
#define A16MASK 0xFFFFFFF0
#define NTRIES 10
#define MTRIES 1000000

unsigned char* gpool;
int rt[NTRIES];
int pt[NTRIES];
int tt[NTRIES];

int main()
{
 FILE *f;
 double d1,d2;
 clock_t t1,t2;
 unsigned char *pool,*p1,*p2;
 int i,j,k,r,s,b1,b2,e1,e2;
 printf("TEST G4\n");
 if(RAND_MAX < POOLSIZE) 
 {
   printf("too short random generator - RAND_MAX=%i\n",RAND_MAX);
   return -1;
 }  
 gpool = (unsigned char*)malloc(POOLSIZE+512);
 if(gpool==NULL) return -2;
 pool = gpool;
 while((int)pool&511) pool++;
 printf("pool = 0x%8.8X\n",(int)pool);
 srand(time(NULL));
 for(i=0;i<POOLSIZE;i++)
 {
   do { r = rand()&255; } while(!r);
   pool[i] = r;
 }
 printf("randomized %i bytes\n",POOLSIZE);
 f = fopen("memcpy.csv","wt");
 if(f==NULL)
 {
   free(gpool);
   return -3;
 }
 fprintf(f,"size,nal,al\n");
 for(i=0;i<NTRIES;i++)
 {
   rt[i] = rand()%(POOLSIZE-(POOLSTEP<<1));
   pt[i] = POOLSTEP + (rand()%POOLSTEP);
 }
 for(j=3;j<100000;j<<=1)
 {
   printf("size %i\n",j);
   s = 0;
   for(k=0;k<NTRIES;k++)
   {
     p1 = &pool[rt[k]];
     p2 = &p1[pt[k]];
     t1 = clock();
     for(i=0;i<MTRIES;i+=10) 
     {
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
     }	
     t2 = clock();
     tt[k] = (int)((t2-t1)/(CLOCKS_PER_SEC/1000.0));
//     printf("t[%i]=%i ms\n",k,tt[k]);
     s += tt[k];
   }
   s /= NTRIES;
   d1 = MTRIES/1.024*j/1024.0/s;
   printf("nal : %i ms -> %4.2f MB/s\n",s,d1);
   s = 0;
   for(k=0;k<NTRIES;k++)
   {
     p1 = &pool[rt[k]&A16MASK];
     p2 = &p1[pt[k]&A16MASK];
     t1 = clock();
     for(i=0;i<MTRIES;i+=10) 
     {
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
        memcpy(p1,p2,j);
     }	
     t2 = clock();
     tt[k] = (int)((t2-t1)/(CLOCKS_PER_SEC/1000.0));
//     printf("t[%i]=%i ms\n",k,tt[k]);
     s += tt[k];
   }
   s /= NTRIES;
   d2 = MTRIES/1.024*j/1024.0/s;
   printf(" al : %i ms -> %4.2lf MB/s\n",s,d2);
   fprintf(f,"%i,%4.2f,%4.2f\n",j,d1,d2);
 }
 fclose(f);

 free(gpool);
 return 0;
}
Для проверки векторизированного варианта memcpy заменялся на vec_memcpy из состава libfreevec-1.0.3
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
cr0acker
God
Posts: 1078
Joined: 03 Feb 2003 13:53

Post by cr0acker »

Это блин всё корошо но кто будет переделывать существующи софт :) Плюс мерит нужно на реальных задачах.
Image
Формат конференции позволяет сказать то что я действительно думаю о проблемах...
(с) Путин
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

cr0acker wrote:Это блин всё корошо но кто будет переделывать существующи софт :) Плюс мерит нужно на реальных задачах.
А зачем софт переделывать? Пересобирается только glibc ;)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Что-то напрягает меня Дебиян - xочеца Слаки и на ППЦ :oops:
Вообще-то есть такая штука - Slackintosh, но она делается непонятно кем непонятно где...
Взяться чтоли и сделать СВОЙ оптимизированный для поверпц микродистр на основе слаквари? :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:Что-то напрягает меня Дебиян - xочеца Слаки и на ППЦ :oops:
Вообще-то есть такая штука - Slackintosh, но она делается непонятно кем непонятно где...
Взяться чтоли и сделать СВОЙ оптимизированный для поверпц микродистр на основе слаквари? :roll:
Пока планирую начать с LiveCD, т.к. это по видимому самое простое...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Image
Поставил на свой iBook G3 последнего дебияна (4.0r4) - там с индикатором зарядки батареи всё хорошо - на одной зарядке ноут работает больше 7 часов! Также поставил PPC джаву от IBM (RPM была взята из пакета WebSphere Community Edition на SourceForge и затем переделана в DEB с помощью скрипта alien).
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
Shaos wrote:P.S. На подходе 400 мегагерцовый PowerMac G4 чуть больше чем за сотню баксов, который я планирую использовать в качестве домашнего сервера интернета и маршрутизатора!
А вот и он :kruto:

Image

Корпус открывается лёгким движением руки - внутри всё очень аккуратно:

Image

Комп 1999 года за $109 (плюс $39 доставка из Калифорнии) имеет следующие ТТХ:
PowerPC G4 400 MHz, 256 MB RAM, 13.7 GB HDD, CD-ROM, modem, 10/100 ethernet, USB keyboard & mouse
А ещё там есть 3 свободных PCI-слота (правда они какие-то удлиннённые)
На компе установлена Mac OS 9.2 (снесу и поставлю Debian 4.0r3)
Из минусов - батарейку похоже придётся менять (часы показывают середину прошлого века)

.........

Тем временем подошёл апргрейд памяти для PowerBook G4 (512 MB) и для PowerMac G4 (2 x 128 MB), а также 3 батарейки - для PowerMac G4, для iMac G3 и ещё одна - на всякикий случай
Перенёс дебияновский сервер-фаервол-маршрутизатор PowerMac G4 в клодовку и подключил питание через батарею бесперебойного питания - теперь оно будет работать круглосуточно и бесперебойно ;)

Image
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Купил я тут в интернете "Apple iBook 500Mhz/128/10/CD" за $149.00 ($171 если с доставкой) - не себе купил, а для работы - понадобилась дешёвая компактная big-endian железяка.
По получению оказалось, что это iBook G3 Dual USB, процессор PowerPC G3 600 МГц, память 640 мегов (это стандартные 128 плюс дополнительная плашка 512), винт 15 гигов и CD-резак. На ибуке стоит макосх 10.3, микрософт офис и даже седьмой фотошоп...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Ещё купил (на этот раз себе) Power Macintosh G3 "Beige" (горизонтальный корпус) - всего за 25 баксов (плюс доставка 45).
У него вместо VGA-выхода старый аппловский разъём - поэтому пришлось сегодня ещё купить адаптер на ебее, так что пока не включаю...
Это наверное последний "страшный" мак - все последующие выглядят как произведения искусства, а этот - ну да ладно, зато дёшево ;)
В железяке кроме CD-рома есть дисковод и ZIP-драйв, а внутри - шина SCSI (и обычный IDE через который подключен винт и CD) и три свободных PCI-разъёма
Сзади вроде как LPT, Ethernet и PS/2 для клавы и мыши (которая включается в клаву), а также вход и выход звука и ещё какие-то непонятные дырки
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
Shaos wrote:Провёл тестирование на скорость своих подопечных линуксовых зверей - использовались тесты Dhrystone (целочисленный) и Whetstone (плавающая точка двойной точности):

iMac G3 266MHz D=0.31M W=116M
iBook G3 300MHz D=0.36M W=135M
PowerBook G4 1.67GHz D=1.47M W=577M

PowerBook G4 1.67GHz (опт) D=3.03M W=1153M

Для G4 оптимизацию (включая использование Alti-Vec) включал так: -Os -mcpu=G4 -ftree-vectorize
Как видно оптимизация ускорила оба теста в 2 раза!

И вот для сравнения мой линуксовый PC-сервер:

Celeron 2.7GHz D=2.56M W=666M

Celeron 2.7GHz (опт) D=4.08M W=938M
......
P.S. Для сравнения - цифры с моего рабочего ноута (cigwin в winxp):

Pentium-M 1.73GHz D=2.94M W=682M
Результаты тестов нового подопечного зверя:

PowerMac G4 400MHz D=0.44M W=179M
PowerMac G4 400MHz (опт) D=0.91M W=357M
Для сравнения - тесты моего относительно нового домашнего компа с двухкоровым Intel Core 2 Duo:

Intel Core 2 Duo 2.60GHz D=3.75M W=1429M

Причём это тест только на одну кору - например если запустить тот же тест в двух терминалах одновременно, то будет тот же результат (если в трёх - то будет уже меньше)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:Ещё купил (на этот раз себе) Power Macintosh G3 "Beige" (горизонтальный корпус) - всего за 25 баксов (плюс доставка 45).
У него вместо VGA-выхода старый аппловский разъём - поэтому пришлось сегодня ещё купить адаптер на ебее, так что пока не включаю...
Это наверное последний "страшный" мак - все последующие выглядят как произведения искусства, а этот - ну да ладно, зато дёшево ;)
В железяке кроме CD-рома есть дисковод и ZIP-драйв, а внутри - шина SCSI (и обычный IDE через который подключен винт и CD) и три свободных PCI-разъёма
Сзади вроде как LPT, Ethernet и PS/2 для клавы и мыши (которая включается в клаву), а также вход и выход звука и ещё какие-то непонятные дырки
А вот и он:

Image

Чтобы подключить монитор пришлось ещё докупить переходник на VGA за 5 баксов на ебее:

Image

Установка Debian в лоб не удалась - во первых этот комп является последним представителем OldWorld Mac с глючным Open Firmware, который умеет бутаться лишь с винта с MacOS либо CD-диска с MacOS (причём только версий 8 или 9) - всеми рекомендуемый патч "SystemDisk" не помог. Есть такая штука как BootX - запускалка линукса непосредственно из MacOS 9. Инсталлятор я с него запустил и потом прибил макось на винте, установив Debian. Пришлось также купить MacOS 9.2.2 за 20 баксов, чтобы вернуть макось обратно - теперь буду пускать линух только через MacOS 9.2.2 с помощью BootX...

Больше фоток в моём блоге:

http://shaos.net/blog/2009/02/desktop-p ... beige.html
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

На этой неделе что-то сподвигло меня на покупку G4 Cube за 250 баксов...
Процессор PowerPC G4 450 MHz, DVD и винт на 40 гигов - поставил дебияна без проблем и уже пишу с него ;)

Image

P.S. На скрине /proc/cpuinfo показывает подозрительно мало богомипсов...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:На этой неделе что-то сподвигло меня на покупку G4 Cube за 250 баксов...
Процессор PowerPC G4 450 MHz, DVD и винт на 40 гигов - поставил дебияна без проблем и уже пишу с него ;)

Image

P.S. На скрине /proc/cpuinfo показывает подозрительно мало богомипсов...
Вот собственно и он:

Image

На корпусе видны трещины:

Image

А кнопка питания меня немного озадачила - это и не кнопка вовсе, а место на корпусе, которое надо трогать, и изнутри туда лампочка светит - я его разбирал, но так и не понял как же это работает ;)

Image

И теперь я кстати могу мерять то, сколько те или иные приборы кушают - например этот куб кушает 30 ватт (бывает плавает от 25 до 45):

Image

Фотки побольше как обычно лежат в блоге:

http://shaos.net/blog/2009/02/g4-cube.html
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24051
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shaos wrote:
Shaos wrote:Ещё купил (на этот раз себе) Power Macintosh G3 "Beige" (горизонтальный корпус) - всего за 25 баксов (плюс доставка 45).
У него вместо VGA-выхода старый аппловский разъём - поэтому пришлось сегодня ещё купить адаптер на ебее, так что пока не включаю...
Это наверное последний "страшный" мак - все последующие выглядят как произведения искусства, а этот - ну да ладно, зато дёшево ;)
В железяке кроме CD-рома есть дисковод и ZIP-драйв, а внутри - шина SCSI (и обычный IDE через который подключен винт и CD) и три свободных PCI-разъёма
Сзади вроде как LPT, Ethernet и PS/2 для клавы и мыши (которая включается в клаву), а также вход и выход звука и ещё какие-то непонятные дырки
А вот и он:

Image

......

Установка Debian в лоб не удалась - во первых этот комп является последним представителем OldWorld Mac с глючным Open Firmware, который умеет бутаться лишь с винта с MacOS либо CD-диска с MacOS (причём только версий 8 или 9) - всеми рекомендуемый патч "SystemDisk" не помог. Есть такая штука как BootX - запускалка линукса непосредственно из MacOS 9. Инсталлятор я с него запустил и потом прибил макось на винте, установив Debian. Пришлось также купить MacOS 9.2.2 за 20 баксов, чтобы вернуть макось обратно - теперь буду пускать линух только через MacOS 9.2.2 с помощью BootX...

Больше фоток в моём блоге:

http://shaos.net/blog/2009/02/desktop-p ... beige.html
Выяснилось, что MacOS9 и Debian Linux на одном диске не живут - каждый норовит попортить разделы другого... В результате пришлось на ебее купить не сильно новый SCSI винт 18 гигов (31 за винт и адаптер, 4 за кабель, 11 за пересылку - всего 46 баксов) - теперь на разных винтах всё сосуществует замечательно!

Image

P.S. Иксы пока не мучал - так что разрешение маненькое...

P.P.S. Ставил я недавно скачанный Debian 4.0r7 (в минимальном варианте для сетевой установки), который в процессе инсталляции превратился в только что вышедший Debian 5.0 Lenny!
Я тут за главного - если что шлите мыло на me собака shaos точка net