Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Вниз

BASM Optimisation for Beginners   Найти похожие ветки 

 
Anatoly Podgoretsky   (2003-07-25 17:32) [0]

На моем сайте опубликована новая книга
BASM for Beginners
Представляет интерес для тек, кому интересная оптимизация на уровне BASM кода.

http://podgoretsky.com/cgi-bin/dlcounter/npscnt?file=http://podgoretsky.com/ftp/Docs/Delphi/basm/BasmForBeginners-ru.doc&file_id=BasmForBeginners-ru


 
MBo   (2003-07-25 17:37) [1]

Это Dennis-a?


 
Anatoly Podgoretsky   (2003-07-25 17:56) [2]

Его, хорошу. работу провел


 
Anatoly Podgoretsky   (2003-07-25 17:57) [3]

Его, хорошу. работу провел
Возможно будут небольшие изменения, я его уговорил предисловие написать.


 
Sha   (2003-07-26 09:39) [4]

Идея автора - отталкиваться от ASM-кода, выработанного компилятором - способна
облегчить знакомство с BASM многим начинающим. Хотя такой подход встречался раньше,
автор использует его, постоянно комментируя свои действия. Но наряду с полезной
информацией, особенно по использованию FPU, уроки содержат слишком много воды.
По-видимому, совсем без нее не обойтись, излагая материал новичкам.

С другой стороны, отсутствует внятное объяснение причин возникновения пенальти.
Может быть, я просто плохо искал. Но, мне кажется, было бы полезнее несколько раз
процитировать Agner Fog (www.agner.org/assem/) или руководства от Intel и AMD,
чем оставить проблему не до конца ясной.

Такое впечатление, что оптимизация автором выполняется методом проб и ошибок.
Частично это следствие избранного автором подхода. Хотя, опять же на мой взляд,
можно было бы подойти к проблеме оптимизации более систематично.
Например, в примере с поиском символа в строке, стоило бы протестировать и
другие варианты решения.

Способ измерения времени выполнения программ, избранный автором, далеко не оптимален.

Наконец, кроме очевидных опечаток, имеются неточности, которые могут сбить с толку
новичка (например: дважды выполненный pop изменяет указатель стека на 8, а не на 4;
20 = $14, а не $16).

В целом, вещь ОЧЕНЬ полезная.
Особенно, если держать в голове другие публикации на эту тему.

P.S. Анатолий,
хорошо было бы передать автору замечания (для использования в работе :)
если не трудно, конечно,
и при условии согласия с ними, разумеется.


 
Anatoly Podgoretsky   (2003-07-26 10:13) [5]

Sha © (26.07.03 09:39)
Не мог бы ты перевести это на аглийский, поскольку автор просил, по возможности пересылать ему замечания от русских читателей, я сам за такую работу не смогу взяться, качество будет низкое.
Пока я пошлю ему русский вариает, у него жена немного понимает русский.
Многое из того, что ты здесь говоришь, я уже сообщил, в том числе про измерение, я ему предложил использовать RDTSC, тогда не придется аппроксимировать к другим частотам, поскольку величина в тактах абсолютная.

Если сможешь перевести эти замечания или кто нибудь другой это сделает, то просьба посылать на мой емайл anatoly@podgoretsky.com, с темой BASM

Просьба к остальным, если есть предложения или замечания, то выссказывать в этой ветке, что бы можно было переслать автору.


 
Anatoly Podgoretsky   (2003-07-26 10:39) [6]

Еще дополнительно, данная книга была основана на статьях в группе новостей Борланд, отсюда понятны некоторые неточности и возможная сумбурность при изложении, но в данный момент автор занялся ее пересмотром, вычитыванием ошибок. На это дело его поддтолкнул перевод :-)
Поэтому через некоторое время, наверно будет исправления как в русской, так и в английских версия. Надо только немного подождать, если учесть, что к переводу я приступил только три дня назад и отослал его автору только вчера. На работу нужно время.


 
Sha   (2003-07-26 10:49) [7]

Сам по-английски пишу с ошибками :(


 
Sha   (2003-07-26 10:55) [8]

Неплохо получилось :)
Мой предыдущий пост вообще-то относится к Anatoly Podgoretsky © (26.07.03 10:13)


 
Anatoly Podgoretsky   (2003-07-26 11:07) [9]

Я сделал какой то переводи отправил автору, но за качество не ручаюсь, но смысл будет понятен.


 
Sha   (2003-07-26 11:29) [10]

Anatoly Podgoretsky © (26.07.03 11:07)
Спасибо, Анатолий.
Эх, если б еще соединить в одном флаконе работы Dennis Chistensen и Agner Fog...


 
Sha   (2003-07-26 14:56) [11]

Что-то больно витиевато я излагал мысли сегодня утром.
После обеда мысли проще, поэтому хочу кое-что добавить.
Когда я говорил, что
Например, в примере с поиском символа в строке, стоило бы протестировать и другие варианты решения.
Я имел ввиду не только варианты решения, приведенные автором, а вообще другие возможные варианты решения других авторов.
Например, известны такие варианты:
1. раскрутка цикла на 2 (rolling out by 2)
2. с ипользованием счетчика, завершающегося нулем (обратный отсчет)
3. вариант проверки по 4 байта за раз, как при определении длины z-строки
4. вариант проверки по 8 байта за раз c использованием MMX
Все они (или их прототипы) есть у Agner Fog.


 
Anatoly Podgoretsky   (2003-07-26 15:15) [12]

Sha © (26.07.03 14:56)
В группе новостей они постоянно устраивают соревнования/испытания различного рода алгоритмов, они не вошли в книгу, поскольку не являлись частью уроков, были и эти варианты и множество других (в соревнованиях участвовало свыше 40 тестов, от нескольких участников). Они также позволили сделать много выводов по поводу выравнивания, парности команд, прдсказаний и методики тестирования, которая оказалась самым слабым звеном.

Но все таки надо учитывать, что эта книга, польностью на основе тех семи уроков, а то что было вокруг уроков естественно в нее вошло. При желании всегда можно поднять эти обсуждения и историю их чемпионата по производительности :-). Весьма поучительно, на многое открыла глаза. Например лопнули мифы о превосходстве того или другого процессора, разные тесты показывали противоположные результаты, в зависимости от процессора.

Вообще то как мне кажется, цель статей было не столько изучение алгоритмов, сколько разборки с компилятором Дельфи и создание на его основе оптимального кода, но это мое предположение.

Небольшой камень в сторону AMD, некоторые тесты не смогли выполниться на нем, вплоть до полного зависания системы, хотя AMD как бы декларировало полную совместимость с P4.


 
Sha   (2003-07-26 15:52) [13]

>Anatoly Podgoretsky © (26.07.03 15:15)
>Небольшой камень в сторону AMD, некоторые тесты не смогли выполниться на нем

Нельзя ли ссылку дать?

Небольшой камень в сторону Intel, во многих тестах AMD показывает лучшее распараллеливание микроопераций.


 
Anatoly Podgoretsky   (2003-07-26 17:14) [14]

На первой же страницы указана группа, а сервер новостей
news://forums.borland.com


 
Anatoly Podgoretsky   (2003-07-26 18:05) [15]

Цитата из письма

Hi Anatoly Podgoretsky

I have started a thread with discussion of the book in the Borland BASM
newsgroup. Can you point your russian friends to it? Thanks for your responses.

Best regards
Dennis


 
Sha   (2003-07-26 18:11) [16]

Имелась ввиду ссылка на неработающий на AMD пример. А форум знаю, спасибо.


 
Anatoly Podgoretsky   (2003-07-26 19:17) [17]

Sha © (26.07.03 18:11)
Ну ссылки на статьи в группах новостей делать невозможно, только на заголовок, а данная тема еимет не одну сотню сообщений.

Из новостей, во-первых получил приятное сообщение, что эти семь уроков не последнии, а будет как минимум еще два, сейчас они в стадии подготовки.

Второе: Денис открыл тему в группе новостей, по получению конструктивной критике по данным статья и просьбу о помощи в улучшении материала, тема называется "Critique of BASM for Beginners Series" - отнесься весьма самокритично к себе.
Подключайтесь кому это интересно и не надо бояться своего плохого языка, участники конференции очень толерантны.

Третье: внесено одно изменение в книгу, Денис прислал главу с введением, те кто скачал книгу могут ее не качать, поскольку существенной информации нет, лучше подождать публикации новой главы.

С уважением АП


 
Sha   (2003-07-26 19:38) [18]

>Anatoly Podgoretsky © (26.07.03 19:17)
>Ну ссылки на статьи в группах новостей делать невозможно,
>только на заголовок, а данная тема еимет не одну сотню сообщений.

Это я понимаю :) Но все, что там видел на AMD работает. Не работает только в том случае, если расширенный набор инструкций (SSE2) не поддерживается процессором. Так и должно быть. Думал, что есть что-то другое. Немного бестолково там: в борьбе за скорость забыли о красоте. И о выравнивании (не текста, а маш. кода).

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

Показалось, что (Dennis"а) его критика немного задела. Мне кажется, он не совсем воспринял мысль, что следует начинать с хорошего алгоритма.


 
Anatoly Podgoretsky   (2003-07-26 19:42) [19]

Мне кажется он воспринял правильно и четко указал в предисловии направленность статей. В любом случае у него хватило силы воли обратиться за помощью.



Страницы: 1 вся ветка

Форум: "Потрепаться";
Текущий архив: 2003.08.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
1-33197
Егор
2003-07-29 06:04
2003.08.11
TActionMainMenuBar


3-33043
kravchuk
2003-07-15 18:59
2003.08.11
База с расширением .odt


14-33366
zzet
2003-07-25 14:41
2003.08.11
За державу обидно.


14-33269
Timur
2003-07-25 19:44
2003.08.11
Файлы H2O или H20


1-33209
LORD
2003-07-26 18:12
2003.08.11
localhost proba file.exe TO d: proba file.exe





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский