Спортна полуседмица

~ 19 Jan 2011, 10:11

Напоследък се получи нещо като benchmark седмица - разцъквах по два бенча едновременно :)

UCBench 2011


Най-сетне пуснах нова версия :) Сайтът е http://anrieff.net/ucbench2011.
Програмата продължава да симулира разбиване на парола на криптирано RAR-че, само че вече 8-12% по-бързо. И освен това има по-добра поддръжка на засичане на CPU скоростта. Изравнени са скоростите на Linux/OSX билдовете с Windows варианта. Има и една камара други малки фиксчета по сайта и програмката.


Fract Benchmark for Android


Бях набарал това въведение за подкарване на SDL върху Android устройства, но се оказа лош водач, загубих си няколко часа да следвам тази неподходяща насока:

1) Така компилираното SDL не работи на Android 2.2, липсват му /dev/tty0 и някои други устройства;
2) Не може да се генерира .apk, а трябва да се копира върху устройството и да се пуска ръчно от конзола (което на всичкото отгоре иска root-нат телефон);

Правилния подход е да си изтеглите последното SDL 1.3 от Mercurial-ското репозитори. Там има едно чудесно README.android, което описва всичко много добре. Не изисква писане на никаква Java :) - ползвате си добрите стари C/C++ сорсове, вкарвате ги в един "фалшив" Java+JNI проект, натраквате две команди и имате .apk. Лесно и просто.

Така първоначално fract-а тръгна на Android - ето една снимка:

Image

По някое време дизасемблирах малко object код и видях каква колосална глупост съм направил - компилаторът е бил настроен да генерира soft-float, понеже няма гаранция, че ARM-чето ще е оборудвано с FPU. Е, по-новите телефони имат (даже имат VFP, което е еквивалент на x87, и NEON, което е еквивалент на SSE1). За да компилирате NDK-частта на проекта (т.е. C/C++ кода) с FPU трябва да смените малко архитектурата - ползвате следната build команда:

ndk-build TARGET_ARCH_ABI=armeabi-v7a

Препоръчително е и да добавите едно V=1 накрая за да видите какво точно се подава към компилатора. -mfpu=vfp е съществената опцийка към GCC.

Двата билда (non-FPU и FPU), както и инструкции как да подкарате бенчмарка на своя android телефон (или таблет) можете да видите тука: http://anrieff.net/pocketfract.
За който не разбира английски, да цъкне тук.

Малко резултати: HTC Desire / Android 2.2 изкарва ~5.5 кадъра в секунда. За сравнение, Asus Еее PC 901, със същия фракт и --no-sse, --no-mmx, --no-mmx2, --xres=400 и --cpus=1 дава към 11.7 FPS. Засега x86 печели :)



Няма коментари



Име:
За връзка: (Линк към вашия блог/сайт/e-mail; незадължително)
Вашият коментар:

Сметнете израза: тρ
идecет и две плюс πетдeт и чeтиρи = (въведи с цифри)


<<

Valid XHTML 1.0 Strict