sse2 реализация

Moderator: BarsMonster

Post Reply [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
gureedo
Posts: 3
Joined: Mon Nov 10, 2008 7:08 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

sse2 реализация

Post by gureedo » Mon Nov 10, 2008 7:16 pm

А можно ли поподробнее узнать реализацию sse2 оптимизаций или хоть несколько намеков на них :)

User avatar
BarsMonster
Site Admin
Posts: 1118
Joined: Wed Oct 01, 2008 7:58 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by BarsMonster » Mon Nov 10, 2008 10:44 pm

gureedo wrote:А можно ли поподробнее узнать реализацию sse2 оптимизаций или хоть несколько намеков на них :)
Самый жирный намек - Intel C++ compiler. Он просто жжет не по детски. :crazy:

gureedo
Posts: 3
Joined: Mon Nov 10, 2008 7:08 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by gureedo » Tue Nov 11, 2008 5:06 am

ыв писали на чистом си? не использовали ассемблерные вставки или полностью не писали эту реализацию на ссе2?
главным образом интересно, а как выреализовали циклический сдвиг?)
ведь его нету в ссе2

User avatar
BarsMonster
Site Admin
Posts: 1118
Joined: Wed Oct 01, 2008 7:58 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by BarsMonster » Tue Nov 11, 2008 6:14 pm

Все на C++ intrinsics, если нет циклического приходится делать 2 обычных и or. То же и для видеокарт, в которых тоже нет rotate.

#define ROTATE_LEFT_SSE(x, n) {__m128i tmp;tmp = _mm_srli_epi32(x, 32-n);x = _mm_slli_epi32(x, n);x = _mm_or_si128(x, tmp);};

gureedo
Posts: 3
Joined: Mon Nov 10, 2008 7:08 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by gureedo » Tue Nov 11, 2008 7:30 pm

спасибо большое, очень выручили!

6bxshhAp
Posts: 2
Joined: Fri Aug 14, 2009 9:19 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by 6bxshhAp » Fri Aug 14, 2009 9:58 am

Реализовывал так же брутер md5 для CPU используя sse2 технологии, но в результате добился скорости в 2 раза меньшей чем у вас. Учел все известные на данный момент способы ускорить подбор. В результате вместо 64 этапов вычисляются 37, но скорость далеко не близка к вашей.
Результаты моей и вашей программы:
Core 2 Duo 1.83GHz .........33 MH/s.......................59 MH/s
Pentium 4 1.86GHz...........6.6 MH/s .....................9.2 MH/s

Оптимизировать получившийся мой код таким образом, что бы скорости немного уровнялись не представляется возможным (как мне кажется), следовательно могу предложить, что вы придумали очередной способ еще немного ускорить расчет md5. Может раскроете секрет или хоть направите куда копать?

User avatar
BarsMonster
Site Admin
Posts: 1118
Joined: Wed Oct 01, 2008 7:58 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by BarsMonster » Fri Aug 14, 2009 1:49 pm

6bxshhAp wrote:Реализовывал так же брутер md5 для CPU используя sse2 технологии, но в результате добился скорости в 2 раза меньшей чем у вас. Учел все известные на данный момент способы ускорить подбор. В результате вместо 64 этапов вычисляются 37, но скорость далеко не близка к вашей.
Результаты моей и вашей программы:
Core 2 Duo 1.83GHz .........33 MH/s.......................59 MH/s
Pentium 4 1.86GHz...........6.6 MH/s .....................9.2 MH/s

Оптимизировать получившийся мой код таким образом, что бы скорости немного уровнялись не представляется возможным (как мне кажется), следовательно могу предложить, что вы придумали очередной способ еще немного ускорить расчет md5. Может раскроете секрет или хоть направите куда копать?
Я считаю столько же шагов, сколько и вы, никакой мистики нет.
Просто эффективная реализация. Без Intel C++ и без 64-х бит все медленее :-)

IvanG
Posts: 89
Joined: Wed May 06, 2009 12:42 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by IvanG » Fri Aug 14, 2009 2:46 pm

Если считать только 4 хэша за раз, то никакая оптимизация не поможет -- в MD5 очень сильная зависимость между инструкциями. 8 (а лучше 12-16) хэшей за раз позволяют довольно легко выйти на пиковую скорость в ~3 инструкции за такт на iCore.
64 бита (а точнее 8 дополнительных XMM регистров) действительно заметно помогают, а вот использование Intel C не является обязательным ;).

6bxshhAp
Posts: 2
Joined: Fri Aug 14, 2009 9:19 am
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Re: sse2 реализация

Post by 6bxshhAp » Fri Aug 14, 2009 6:45 pm

Ясно... Спасибо.

Post Reply
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Who is online

Users browsing this forum: No registered users and 0 guests