Автор Гілка: Linux LiveCD i686  (Прочитано 4114 раз)

anonymous(Guest)

  • Гість
Linux LiveCD i686
« : 2006-01-13 16:12:43 »
Зібрав LiveCD почав тестувати у знайомих, виявилось, що на AMD не йде :(
Хочу, щоб ішов на наступних процах, з максимально можливою оптимізацією:

Intel      P2, P3, P4, Celeron, Xeon;
AMD      Duron, Athlon, AthlonXP, Samptron

Використовував наступні флаги:

$ cat /etc/make.conf
USE=".....mmx.....¨
CHOST="i686-pc-linux-gnu"
CFLAGS="-mcpu=pentium4 -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

Для ядра:
         Subarchitecture Type (PC-compatible)  --->
          Processor family (Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon)  --->
    [*] Generic x86 support

Чи можна одночасно використовувати такі USE=¨.... sse sse2 3dnow mmx mmxext...¨

При компіляції взяв кеш ccache зі збірки CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" може він повпливав?

За вихідні збираюсь перезібрати LiveCD, щоб працював і був максимально оптимізований до всіх вище згаданих проців. Хочу Ваших порад що до найоптимальніших опцій оптимізації.

Наперед вдячний.

Відсутній Loof

  • Дописувач
  • **
  • дописів: 77
  • Карма: +0/-0
  • Що новенького?
Re: Linux LiveCD i686
« Відповідей #1 : 2006-01-13 18:12:41 »
Звичайно, що на AMD не піде через "-mcpu=pentium4"

А Ви справді думаєте, що ця "максимально можлива оптимізація" якось збільшить швидкодію?  ;D
« Змінено: 2006-01-13 18:14:42 від Loof »

anonymous(Guest)

  • Гість
Re: Linux LiveCD i686
« Відповідей #2 : 2006-01-13 19:37:30 »
Я вже побачив:
       -mcpu=cpu-type
           Tune to cpu-type everything applicable about the generated code, except for the ABI
           and the set of available instructions.  The choices for cpu-type are i386, i486,
           i586, i686, pentium, pentium-mmx, pentiumpro, pentium2, pentium3, pentium4,
           prescott, nocona, k6, k6-2, k6-3, athlon, athlon-tbird, athlon-4, athlon-xp, athlon-
           mp, winchip-c6, winchip2 and c3.

           While picking a specific cpu-type will schedule things appropriately for that par‐
           ticular chip, the compiler will not generate any code that does not run on the i386
           without the -march=cpu-type option being used.  i586 is equivalent to pentium and
           i686 is equivalent to pentiumpro.  k6 and athlon are the AMD chips as opposed to the
           Intel ones.


А все таки при таких процах яка оптимізація максимально можлива?

$ cat /etc/make.conf
USE=".....mmx.....¨
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=і686 mmmx -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

         Subarchitecture Type (PC-compatible)  --->
          Processor family (i686)  --->
    [ ] Generic x86 support

Відсутній Loof

  • Дописувач
  • **
  • дописів: 77
  • Карма: +0/-0
  • Що новенького?
Re: Linux LiveCD i686
« Відповідей #3 : 2006-01-13 21:03:16 »
Хочете без проблем запускати свій LiveCD - вибирайте i686
Але ніякої різниці між тими оптимізаціями НЕМАЄ
Причина у тому, що практично ніякі програми НЕ ВИКОРИСТОВУЮТЬ усі ті модні слова як MMX та SSE  :)
До того ж, високий рівень оптимізації (навіть -O3) роблять програми менш стабільними.... та часто навіть зменшують швидкодію.
Тому зовсім не варто стільки часу займатись оптимізаціями компілювання, а краще зайнятись чимось приємним і корисним   :D

Виняток - це відеоплеєри, які дійсно можуть використовувати особливі інструкції процесора для більшої швидкодії. Але їх портібно компілювати з певними опціями та тільки під певний тип процесора (для всіх одразу не вийде...)
« Змінено: 2006-01-13 21:08:00 від Loof »

Відсутній Loof

  • Дописувач
  • **
  • дописів: 77
  • Карма: +0/-0
  • Що новенького?
Re: Linux LiveCD i686
« Відповідей #4 : 2006-01-13 21:11:26 »
До речі, у Вас Gentoo?  ;)
« Змінено: 2006-01-13 21:12:10 від Loof »

Відсутній popov

  • Новачок
  • *
  • дописів: 4
  • Карма: +0/-0
  • Be Free!
Re: Linux LiveCD i686
« Відповідей #5 : 2006-01-21 10:08:55 »
Хочете без проблем запускати свій LiveCD - вибирайте i686
Але ніякої різниці між тими оптимізаціями НЕМАЄ
Причина у тому, що практично ніякі програми НЕ ВИКОРИСТОВУЮТЬ усі ті модні слова як MMX та SSE
...
Виняток - це відеоплеєри, які дійсно можуть використовувати особливі інструкції процесора для більшої швидкодії.
Приєднуюся по всіх наведених пунктах.
Виходжу як із досвіду створення власного LiveCD, так і з співпраці з Роберто Ді Лео (Roberto DeLeo) - movix.
Приблизно ті ж самі висновки можна зробити оцінюючи ефективність багатьох інших тестованих LiveCD
vn_popov

anonymous(Guest)

  • Гість
Re: Linux LiveCD i686
« Відповідей #6 : 2006-01-26 13:21:27 »
Перезібрав з наступною оптимізацією С:

$ cat /etc/make.conf
USE=".....mmx....."
CHOST="i686-pc-linux-gnu"
CFLAGS="-march=i686 -mmmx -O3 -pipe -fomit-frame-pointer"
CXXFLAGS="${CFLAGS}"

     Subarchitecture Type (PC-compatible)  --->
      Processor family (Pentium-Pro)  --->
  [*] Generic x86 support

# cat .config
......
#
# Processor type and features
#
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
CONFIG_M686=y
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
......

І в результаті кажуть, що на AthlonXP нейде :( , не завантажується ядро хоча зібране з CONFIG_X86_PC=y та CONFIG_M686=y, де граблі?

anonymous(Guest)

  • Гість
Re: Linux LiveCD i686
« Відповідей #7 : 2006-01-27 13:24:07 »
Кинув був на диск sys-apps/memtest86+, а він збирається з опціями котрі прописані в нього у Makefile:
CCFLAGS=-Wall -m32 -march=i486 -Os -fomit-frame-pointer -fno-builtin -ffreestanding -fno-stack-protectorІ навіть він на AMD не пішов    :o
Може криве gcc ???
Я ґцц зібрав спочатку при бутстрапі потім з
-mcpu=pentium4 -O3 -pipe -fomit-frame-pointer і його вже з допомогою типу
emerge -e world рекомпілив з опціями
-march=i686 -mmmx -O3 -pipe -fomit-frame-pointer
[ebuild   R   ] sys-devel/gcc-3.3.5.20050130-r1  (-altivec) -bootstrap -boundschecking -build -debug +fortran -gcj -gtk +hardened -ip28 -multilib -multislot -n32 -n64 +nls -nocxx -nopie -nossp -objc -static 0 kB

gcc -v
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/specs
Configured with: /var/tmp/portage/gcc-3.3.5.20050130-r1/work/gcc-3.3.5/configure --enable-version-specific-runtime-libs --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.3.5-20050130 --includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5-20050130 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5-20050130/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5-20050130/info --with-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/include/g++-v3 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 3.3.5-20050130 (Gentoo Hardened 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1)

Хто виноватий і що робити? :-[

Відсутній hse

  • Графоман
  • ****
  • дописів: 473
  • Карма: +0/-0
  • Gentoo Linux
Re: Linux LiveCD i686
« Відповідей #8 : 2006-01-31 19:02:43 »
Дерево пакетів LiveCD з їх залежностями.
бушократія - цинічний помаранчевий геноцид, витравлювання Української Нації, плюс мікрософтизація всієї країни.