User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 331

Тема: Вычисление числа Пи на ассемблере

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Заменил на версию с более точным подсчетом времени
    Ваши коды мне напоминают записи прохождений мастеров по думу - уровень чемпионов. Ещё бы выкладывали версии и для других компьютеров Радио-86РК, Корвета, ... А если сделать коды для Спектрума (а может и для MSX с Амстрадами и т.п.), то можно было бы пошокировать и мировую общественность.
    У меня пока Амстрад тормозит у отметки 3.97 c за 100 и это при том, что z80 слегка (10%?) побыстрее 8080. Ваш код пока не запускал, но должно быть около 2.56 с за 100 - Амстрад обгонит Коммодор +4 - тот пока гонит только 2.73 - партия поклонников z80 ликует!
    Возник вопрос. В википедии написано, что эффективная частота Вектора около 2.33 МГц, но разница по скорости на superbest для 100 цифр на Амстраде только 16%, что делает эффективную частоту близкой к 2.74 МГц. Откуда такая разница? Видео отключаете? Также удивляет разница по данным на 1000 цифр - тут при сравнение с Амстрадом (Амстрад уже на 27% быстрее) эффективная частота Вектора падает до 2.50 МГц. Как такое может быть?!
    Для Амстрада идёт разработка операционной системы FutureOS - она совместима с фирменной, а отличается только скоростью, т.е. энтузиасты пишут совместимые со старыми вызовы, но максимально всё разгоняют. Вам бы в такой проект, уверен процентов 20-30 везде бы дожали.
    Последний раз редактировалось litwr; 27.12.2015 в 14:04.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    litwr, опять же спасибо на добром слове, прямо чувствую как развивается мания величия.
    Насчет версий для других компов - я и так нарушил свое обещание не оптимизировать программы b2mа (по крайней мере в этой теме). Для вектора b2m выдал мне индульгенцию, а я еще распространил её действие и на клоны вектора. Может он и не стал бы делать pi32, если бы знал, как я буду её извращать.
    Отмечу, что финальную векторовскую версию уже не на любой комп с 8080 можно перенести дословно. В рк, микрошу, да и в специалист не влезет, придется резать таблицы. С другой стороны, таблицы дали максимум процентов 10, т.ч. и без них будет неплохо.

    Цитата Сообщение от litwr Посмотреть сообщение
    В википедии написано, что эффективная частота Вектора около 2.33 МГц
    Однако дотянулся vladtru до wiki. Мое личное мнение такое, что оценки "эффективной частоты" нельзя использовать для предсказания быстродействия программ с кодом произвольного состава, т.к. она очень зависит от конкретных используемых команд. Но её можно использовать для оценки эффективности оптимизации под конкретный комп с тормозами - первые версии pi32 для вектора показывали что-то в районе "2.25 МГц". Для финальной версии "эффективная частота" 2.4356 МГц (т.к. условный вектор без тормозов посчитал бы 100 цифр с ее помощью за 2.4168 сек). Видео в векторе отключить нельзя, можно только аккуратно выбирать команды, стараясь уменьшить применение самых торозных (mov, inr/dcr, inx/dcx - amstradу cpc и ПК-6128Ц с их процами полегче, у них то mov и inr/dcr по 4 такта).
    То, что в финальной версии времена подсчета 100 и 1000 цифр отличаются почти точно в 10 раз (как и должно быть в теории) считаю признаком хорошей оптимизации.

  4. #3

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    почти точно в 10 раз
    Т.е. в 100 раз?
    И вы уверены, что эмулятор даёт правильную частоту кадров? Все известные мне эмуляторы БК вместо положенных 48.5 Гц упрямо дают 50.

    Цитата Сообщение от ivagor Посмотреть сообщение
    стараясь уменьшить применение самых торозных
    Вы ещё и на этом оптимизируете?! Вам надо сайт какой-то сделать, сохранить коды для Истории. Был до ваших разъяснений уверен, что 8080 и z80 по тактам одинаковы, оказалось нет... INC на z80 быстрее, а ADD HL наоборот медленнее...

  5. #4

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    почти точно в 10 раз
    Т.е. в 100 раз?
    И вы уверены, что эмулятор даёт правильную частоту кадров? Все известные мне эмуляторы БК вместо положенных 48.5 Гц упрямо дают 50.

    Цитата Сообщение от ivagor Посмотреть сообщение
    стараясь уменьшить применение самых торозных
    Вы ещё и на этом оптимизируете?! Вам надо сайт какой-то сделать, сохранить коды для Истории. Был до ваших разъяснений уверен, что 8080 и z80 по тактам одинаковы, оказалось нет... INC на z80 быстрее, а ADD HL наоборот медленнее...

    Цитата Сообщение от perestoronin Посмотреть сообщение
    ассемблер со сравнительно небольшими издержками в затратах в часах, можно получить ускорение во всех расчетных модулях как минимум в 100 раз!
    Скорее раз в 10 для 8-биток. Давал ссылку на компилятор си для Амстрада - тот при включении оптимизации даёт код, примерно раз в 8 медленнее лучшего из пока сделанных. И затрат в часах для такого небольшого кода нужно очень немало: уверен, что уважаемый ivagor при случае это подтвердит.
    Последний раз редактировалось litwr; 27.12.2015 в 21:13.

  6. #5

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Т.е. в 100 раз?
    Да, что-то меня переклинило (цифр в 10 раз больше, считает в 100 раз дольше).

    Цитата Сообщение от litwr Посмотреть сообщение
    ещё и на этом оптимизируете?!
    Подкованные векторовские программисты это знали с самого начала, а после того как в информационном выпуске Вектор-USER была опубликована (в 94 или 95 году) информация по растактовкам это узнали все (в т.ч. и я). Сергей Ермолаев (SES) написал (правда уже после коммерческой смерти вектора, в конце 90х) статью с некоторыми приемами оптимизации под вектор.

    Цитата Сообщение от litwr Посмотреть сообщение
    уверены, что эмулятор даёт правильную частоту кадров? Все известные мне эмуляторы БК вместо положенных 48.5 Гц упрямо дают 50.
    В emu и Virtual Vectore в кадре точно 59904 такта. Если так не сделать, то не будет правильно работать как минимум игрушка exolon (и наверняка некоторые демки, просто навскидку не назову).

  7. #6

    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Скорее раз в 10 для 8-биток. Давал ссылку на компилятор си для Амстрада - тот при включении оптимизации даёт код, примерно раз в 8 медленнее лучшего из пока сделанных. И затрат в часах для такого небольшого кода нужно очень немало:
    Затраты в часах можно померить разницей во времени между сообщениями. Так что не правы.

    А на счет 100 раз речь шла о переходе с Бейсика на ассемблер для не самого удачного одного и тоже алгоритма. Для Си же разница как между оптимизированной версией на асме и не оптимизированной. Что оптимизация на Си не стала лучше за последние 20 лет, это мне и так давно известно, что говорит в пользу использования ассемблера там, где есть такая необходимость или возможность.

    Цитата Сообщение от litwr Посмотреть сообщение
    надо сайт какой-то сделать, сохранить коды для Истории.
    Есть вики здесь местная. Наполняйте на здоровье. Я прилеплю ссылку на Вашу статью в шапку этой темы.
    http://zx-pk.ru/wiki
    Последний раз редактировалось perestoronin; 28.12.2015 в 01:54.

    Ретрокладовая продажи

    продажи
    [свернуть]

  8. #7

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,926
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Для вектора b2m выдал мне индульгенцию, а я еще распространил её действие и на клоны вектора.
    Что-то я не помню, чтобы я где-либо что-либо тебе запрещал. Я мог высказать где-то какое-нибудь скептическое мнение, но запрещать - не было такого. Так что дерзай на здоровье.

  9. #8

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,391
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    Что-то я не помню, чтобы я где-либо что-либо тебе запрещал.
    Ты не запрещал, а вот я пообещал.

  10. #9

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,392
    Спасибо Благодарностей отдано 
    1,701
    Спасибо Благодарностей получено 
    2,218
    Поблагодарили
    872 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Ты не запрещал, а вот я пообещал.
    Просим самую быструю версию под Z80)

  11. #10

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Затраты в часах можно померить разницей во времени между сообщениями.
    Время в сутках, а ускорение только в 10-х процентов к малюсенькому коду. И ошибся с числом, по сравнению с С (Z88DK/SDCC_FAST - http://www.z88dk.org/wiki/doku.php?id=temp:front#pi) все усилия по оптимизации дали только 3-х кратный прирост. Оптимизаторы сейчас работают лучше и продолжают улучшаться - откуда 20 лет - загадка. Кто 20 лет назад мог рассчитывать на стабильный 2-х и более кратный прирост скорости от стандартной оптимизации? Тогда ещё память была дорогой - 16 МБ были нормой. В ретропрограммировании без ассемблера почти никак... А вот статья с фактами и про современный ассемблер - http://habrahabr.ru/post/254121/

    Цитата Сообщение от Titus Посмотреть сообщение
    Просим самую быструю версию под Z80)
    Выкладываю версию superbest уважаемого ivagor - остальные пока не перевёл. Перевод на z80 процесс быстрый, минут на 15. Может на днях сделаю и остальные. В коде нужно только заменить функцию печати знака из регистра А (после метки PRC) и вставить при желании учёт времени. На Амстраде время считать поручаю бейсику, который вызывает машинный код как подпрограмму. Адреса загруки нужно ещё соответствующие системе выбрать...
    superbest-z80.asm
    Последний раз редактировалось litwr; 28.12.2015 в 18:10.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Мнемокоманды и числа.
    от ALKO в разделе Программирование
    Ответов: 0
    Последнее: 15.02.2014, 03:49
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Определение числа сторон
    от mungo в разделе Внешние накопители
    Ответов: 1
    Последнее: 16.03.2012, 18:06

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •