![]() |
|
|
![]()
|
|
| serious |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
Необходимо перемножить 2 64-хбайтных числа с наименьшими временными затратами. Думаю умножать столбиком (возможно, быстрым столбиком). В случае быстрого столбика значения индексов для множителей буду брать из регистров SSE2, куда перед вызовом функции буду их загонять из буфера в памяти (все значения вычислены заранее). Может быть, в дальнейшем написать макрос, продублировать его тело 256 раз, развернув тем самым цикл.
З.Ы. Тут правда я не дописал - можно ведь еще пару умножений сделать, но основная проблема у меня: как учитывать перенос, нет в SSE команды, аналогичной adc. З.Ы.Ы. Еще была мысль написать макрос, в котором будут перемножаться 64-хбитные числа, но не знаю, как это может помочь в плане скорости... З.Ы.Ы. Спрашивал на Васме, но тема затухла (((( Нейжели никого это не интересует (есть конечно всякие готовые библиотеки, но можно сделать быстрее!!!). -------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
|||
|
||||
| Chingachguk |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва Репутация: нет Всего: 18 |
Попробуй все же спрость еще раз ;) Например, STAS'а. Я бы с удовольствием тебе помог, даже почитал книжку Е. Бердышева "Технология MMX...", но вот adc вроде бы нету. Чем тебя не устраивает умножение 32-х разрядных регистров или сопроцессор ? Какую задачу пытаешься решить ? -------------------- I don't like the drugs (but the drugs like me). M.Manson. |
|||
|
||||
| serious |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 316 Регистрация: 15.2.2003 Где: Пенза Репутация: нет Всего: 1 |
2Chingachguk: Как раз эту задачу пытаюсь решить оптимальным способом! Я понимаю конешно, что так или иначе придется работать с 32-хбитными словами, но... в общем, пытаюсь написать макрос, который будет перемножать 128-битные числа (он включает в себя все те же элементарные умножения по 32 бита) с расчетом на будущее (потом его нужно будет просто заменить одной ассемблерной командой), но это довольно просто реализуется, проблема в сложении с переносом... Почему в Inel не придумали аналога ADC для более длинных чисел?!
Добавлено @ 16:29
Эт например как? Кричать, STAS, где ты? Добавлено @ 16:33
Операции в группе точек эллиптической кривой, проверка ЭЦП --> у меня VTune показывает, что на функцию умножения приходится более 60% процессорного времени, что не есть гуд. -------------------- Я знаю то, что ничего не знаю, а некоторые не знают и этого. |
||||
|
|||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |