Христианская проза
Христианская поэзия
Путевые заметки, очерки
Публицистика, разное
Поиск
Христианская поэзия
Христианская проза
Веб - строительство
Графика и дизайн
Музыка
Иконопись
Живопись
Переводы
Фотография
Мой путь к Богу
Обзоры авторов
Поиск автора
Поэзия (классика)
Конкурсы
Литература
Живопись
Киноискусство
Статьи пользователей
Православие
Компьютеры и техника
Загадочное и тайны
Юмор
Интересное и полезное
Искусство и религия
Поиск
Галерея живописи
Иконопись
Живопись
Фотография
Православный телеканал 'Союз'
Максим Трошин. Песни.
Светлана Копылова. Песни.
Евгения Смольянинова. Песни.
Иеромонах РОМАН. Песни.
Жанна Бичевская. Песни.
Ирина Скорик. Песни.
Православные мужские хоры
Татьяна Петрова. Песни.
Олег Погудин. Песни.
Ансамбль "Сыновья России". Песни.
Игорь Тальков. Песни.
Андрей Байкалец. Песни.
О докторе Лизе
Интернет
Нужды
Предложения
Работа
О Причале
Вопросы психологу
Христианcкое творчество
Все о системе NetCat
Обсуждение статей и программ
Последние сообщения
Полезные программы
Забавные программки
Поиск файла
О проекте
Рассылки и баннеры
Вопросы и ответы
 
 Домой  Форумы / Обсуждение статей и программ / 19.12.2020 ВЫШЛА ВЕРСИЯ 2.1c PUBLIC Войти на сайт / Регистрация  Карта сайта     Language По-русски По-английски
Обсуждение статей
Консультации по программе NetMap
Консультации по программе CreateSFX
Консультации по классу cBigNumber
Консультации по шаблонам динамических массивов

Дом сохранения истории Инрог


Интересно:
Рекомендуем посетить:

 
19.12.2020 ВЫШЛА ВЕРСИЯ 2.1c PUBLIC
Добавлено: 2020-12-19 21:25:23   19.12.2020 ВЫШЛА ВЕРСИЯ 2.1c PUBLIC
Raul

Зарегистрирован(а): 17.03.2010

Сообщений: 101 (просмотреть)
- Ассемблерное умножение на процессорах AMD Zen и Zen+ ускорено
на 40% за счет применения инструкции MULX.

- Тест производительности для Athlon 200GE и Ryzen 2 2600K.

- Бета-тестирование завершено.


30.11.2017 ВЫШЛА ВЕРСИЯ 2.1c BETA PUBLIC

При использовании в вычислительных целях рекомендуется отключить
макро _CBIGNUM_HARDWARE_MUL для всех трансляторов, кроме
64-разрядного Microsoft Visual C++. См. также важное замечание к
макро _CBIGNUM_SMALL_DIV и _CBIGNUM_SMALL_POWMOD к версии 2.1b.

- Готовится в качестве будущей высокопроизводительной стабильной
версии на замену 2.0 public.

- Операции над машинными числами перенесены в файл Cbnl.h.

- Использование типа long long для CBNL, если компилятор совместим
co стандартом С++11.

- Быстрое аппаратное умножение под 32-разрядным Microsoft Visual C++
без применения дополнительного ассемблерного пакета, ускорение
примерно в 10 раз.

- Использование аппаратного умножения вместо двоичного метода
под любым транслятором С++ (двоичный метод доступен при отмене
макро _CBIGNUM_HARDWARE_MUL).

- Поддержка 64/32 и 128/64-разрядного аппаратного деления в
дополнительном ассемблерном пакете под Visual C++ и GNU C++.

- Все тестовые 64-битные программы под Windows и Linux компилируются
с установленным макро _CBIGNUM_HARDWARE_DIV, которое разрешает
использование аппаратного деления.

- Программы Arifexp и Miller выдают информацию о разрядности и
методах, применяемых для ускорения вычислений.

- Обновлена оценка времени умножения в программе Arifexp.

- Документирована опция -mhz в программе Arifexp.

- Результаты тестирования производительности для 32-разрядного
С++ кода с аппаратным умножением.

- Тест производительности для Core i7-6800K и Phenom II X6.


10.11.2017 ВЫШЛА ВЕРСИЯ 2.1b BETA PUBLIC

ВАЖНОЕ ЗАМЕЧАНИЕ:
При отключенных макро _CBIGNUM_SMALL_DIV и _CBIGNUM_SMALL_POWMOD
данная версия класса использует алгоритмы, протестированные в
версии 2.0 public. Новые алгоритмы деления задействуются только
при включенных макро (по умолчанию). Эти алгоритмы в настоящее
время проходят публичное бета-тестирование и пока не рекомендуются
для проведения достоверных вычислений.

- Оптимизация алгоритмов деления на 32/64/128-разрядный (однословный
или двухсловный) делитель для сокращения число условных переходов.
Достигается примерно 2-кратный рост производительности по сравнению
с исходными реализациями в версиях 2.1a и 2.1b internal.

- Оптимизация 32/64/128-разрядного (однословного или двухсловного)
модуля неограниченного числа для сокращения число условных переходов.
Достигается примерно 2-кратный рост производительности по сравнению
с исходными реализациями в версиях 2.1a и 2.1b, а также на 60-80%
ускоряется возведение в степень по двухсловному модулю.

- Оптимизация алгоритма степени по однословному модулю для
сокращения числа условных переходов при трансляции под Microsoft
Visual C++ 2010 (дает 2-3 кратный рост производительности, ранее
этот эффект достигался только под Visual C++ 2015).

- Небольшая оптимизация аппаратного деления с модулем, старый
метод доступен при установленном макро _CBIGNUM_REVERSE_MOD.

- Оптимизация вывода неограниченного числа (около 10% или более
процентов производительности для относительно небольших чисел).

- Оптимизация методов деления и модуля с таблицей сдвигов для
снижения накладных расходов.

- ИЗМЕНЕНИЕ: Методы fit(), tab(), smp(), gc() и pack() теперь
недоступны для константных чисел из-за возможных проблем
с многопоточностью. Установите макро _CBIGNUM_CONSTCAST
в файле Cbignum.h, если надо использовать эти методы
как прежде.

- Новые методы divtab() и modtab(), дополнительная документация
по методам setdivtab(), setmodtab() и setdivmodtab().

- Из файлов Cbignum.cpp и Cbignumf.inl удален квалификатор
register с целью соответствия стандарту C++11.

- Проверена совместимость с Microsoft Visual C++ 2017.

- Все программы для Windows теперь компилируются под Microsoft
Visual C++ 2015 Community ради поддержки встроенных функций
с переносом/займом. Программы, скомпилированные под Visual C++
2012 и ниже работают заметно медленнее при операциях с
двухсловным делителем/модулем.

- Тестовые программы Miller64 и Miller64x для Windows скомпилированы
с установленным макро _CBIGNUM_HARDWARE_DIV.

- Построены новые исполняемые файлы для Linux с улучшенным кодом
32/64-разрядного аппаратного умножения и ускоренными операциями
с малым делителем/модулем.

- ИСПРАВЛЕНО: Prime.cpp не включает аппаратное деление для
факторизации однословных чисел при компиляции
в 64-разрядном режиме под Microsoft Visual C++.

- ИСПРАВЛЕНО: Предупреждение компилятора в Prime.cpp, связанное
с файлом Ctty.h.

- ИСПРАВЛЕНО: Тестовые программы Arifexp64x, Matrix64x и
Miller64x для процессоров с BMI2 не запускаются
под 64-разрядной Windows XP.

- ИСПРАВЛЕНО: Завышенная оценка времени деления в программе
Arifexp для больших делителей размером до
~16,000,000 бит.

- ИСПРАВЛЕНО: Генератор случайных чисел может работать неправильно
при компиляции в более чем 64-разрядном режиме
(неактуально для современных компиляторов).


27.07.2017 ВЫШЛА ВЕРСИЯ 2.1b BETA INTERNAL

ВЕРСИЯ ПРЕДНАЗНАЧЕНА ДЛЯ ОЗНАКОМЛЕНИЯ И ТЕСТИРОВАНИЯ

При использовании версии данной для вычислительных целей следует отключить
макро _CBIGNUM_SMALL_DIV и (возможно) _CBIGNUM_SMALL_POWMOD.

- Оптимизированный алгоритм деления неограниченного числа на
64/128-разрядный двухсловный делитель, ускорение в 2-3 раза.

- Ускоренное в 10 раз возведение в степень по 64/128-разрядному модулю.

- Использования инструкции LZCNT вместо BSR при трансляции для AVX2
в программах Arifexp64x, Matrix64x, Miller64x.

- Проверка деления/модуля на малый делитель альтернативным алгоритмом
с таблицей сдвигов в программе Arifexp.exe.

- ИСПРАВЛЕНО: Методы toCBNL(), tolong(), toint() and toshort() не работают
для ненормализованных чисел.

- ИСПРАВЛЕНО: Сдвиг на ненормализованное число не работает.

- ИСПРАВЛЕНО: Некорректная отладочная проверка индексов при возведении
в степень ненормализованного числа.

- ИСПРАВЛЕНО: Ошибка распределения памяти при возведении в
ненормализованную степень.

- ИСПРАВЛЕНО: Возможно некорректная работа очитка чисел в методах
clear(), gc() и pack() (ошибка в версии 2.1а бета).


27.06.2017 ОБНОВЛЕНИЕ ВЕРСИИ 2.1a BETA INTERNAL

ВЕРСИЯ ПРЕДНАЗНАЧЕНА ДЛЯ ОЗНАКОМЛЕНИЯ И ТЕСТИРОВАНИЯ

- Использование встроенных функций компилятора в 32-разрядном Visual C++.

- Макро _CBIGNUM_SMALL_DIV и _CBIGNUM_SMALL_POWMOD для включения тестовых
алгоритмов для короткого делителя/модуля, реализованных в 2.1 и
последующих версиях класса.

ПРИМЕЧАНИЯ: При выключенном макро _CBIGNUM_SMALL_DIV данную тестовую
версию класса можно использовать для вычислительных целей.

При выключенных _CBIGNUM_SMALL_DIV и _CBIGNUM_SMALL_POWMOD
данная версия использует только алгоритмы версии 2.0 public.

- ИСПРАВЛЕНО: Неправильный результат деления CBNL_MIN/CNBL_MIN.


09.06.2017 ВЫШЛА ВЕРСИЯ 2.1 BETA INTERNAL

ВЕРСИЯ ПРЕДНАЗНАЧЕНА ТОЛЬКО ДЛЯ ОЗНАКОМЛЕНИЯ И ТЕСТИРОВАНИЯ

- Упрощенный и оптимизированный алгоритм деления неограниченного числа
на 32/64-разрядный делитель с возможностью использования аппаратного
деления, если установлено макро _CBIGNUM_HARDWARE_DIV. Этот алгоритм
заменяет алгоритмы, ранее разработанные для версий 1.2c и 2.1.

- Новый алгоритм деления ускоряет тест "строго вероятной простоты"
Миллера в 2 раза для однословных чисел и на 20% для двухсловных чисел.

- Обновленный тестовый файл Millrand для больших чисел.


28.12.2016 ВЫШЛА ВЕРСИЯ 2.1 BETA INTERNAL (теперь BETA PUBLIC)

- Использование встроенных (intrinsic) функций Microsoft Visual C++
в качестве опции для 64-разрядного кода на стандартном С.

- Быстрое аппаратное умножение под 64-разрядным Microsoft Visual C++
без применения дополнительного ассемблерного пакета, ускорение
примерно в 10 раз.

- Оптимизированное деление 2-3 словного числа на 32/64-разрядный
делитель.

- Оптимизированный 32/64-разрядный модуль неограниченного числа
с возможностью использования аппаратного деления, если установлено
макро _CBIGNUM_HARDWARE_DIV.

- Ускоренное в 10 раз возведение в степень по 32/64-разрядному модулю.

- Опция _CBIGNUM_REDUCE_JUMPS игнорируется, поскольку оптимизация
компилятора работает эффективнее.

- Возобновлено бета-тестирование для нового кода.

- ИСПРАВЛЕНО: Опечатка в тесте деления файла Arifrand.

Ответить | Цитировать




Домой написать нам
Дизайн и программирование
N-Studio
Причал: Христианское творчество, психологи Любая перепечатка возможна только при выполнении условий. Несанкционированное использование материалов запрещено. Все права защищены
© 2024 Причал
Наши спонсоры: