Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Да, от ветвления избавились. Я бы тоже избавился, если б... (upd) 20.12.04 12:18 Число просмотров: 7144
Автор: amirul <Serge> Статус: The Elderman Отредактировано 20.12.04 12:23 Количество правок: 1
|
> > unsigned16 a[ N ], b[ N ];
> unsigned32 x = 0;
> for( i = 0; i < N; i += 1 ){
> x += a[ i ];
> x += b[ i ];
> a[ i ] = x;
> x >>= 16;
> }
> ---
> Какие тут проверки и разрушения конвеера? И это не смотря Да, от ветвления избавились. Я бы тоже избавился, если б догадался. Писал я свою библиотеку ОЧЕНЬ давно.
> на то, что современные процессоры точно могут предсказать > ветвления. Предсказание ветвлений в данном случае не срабатывает. Оно предназначено для предсказания ветвлений, образующих циклы, то есть если вероятность срабатывания условия не равна 0.5 (и чем дальше от 0.5 тем лучше работает предсказатель). Ну а в данном случае вероятность того, что будет перенос в общем случае равна ровно 0.5, и предсказатель будет обламываться. Хотя в целом, хоть конвейер и не разрушается - используется гораздо больше одной операции на один лимб и ровно вдвое больше лимбов. Так что работать оно будет минимум раз в 5 медленнее, чем ассемблерная реализация с adc.
> Не ужели для умножения нужно быстрое преобразование Фурье. > Разве оно не сложнее, чем простое умножение столбиком :-(. Гы. Это как раз один из алгоритмов, которые я не понял
http://www.swox.com/gmp/manual/Multiplication-Algorithms.html#Multiplication%20Algorithms
http://www.swox.com/gmp/manual/FFT-Multiplication.html#FFT%20Multiplication
В частности это САМЫЙ эффективный алгоритм при умножении очень больших чисел.
> Я здесь как раз о том, чтоб не над эффективностью алгоритма > работы с длинными числами работать, а над самим алгоритмом > факторизации. Тут согласен. Но в любом случае лучше работать над эффективным НОВЫМ алгоритмом при этом используя уже изобретенный эффективный инструментарий, чем изобретать свои велосипеды, затрачивая время на их оптимизацию
-----
Кстати, эффективность FFT-метода при умножении O(Nk/(k - 1)), где k - насколько я понял - разрядность FFT преобразования. В пределе это O(N), в то время как умножение в столбик - O(N2)
|
|
|