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




Вниз

О связке SSE/MMX - Delphi 


Александр А.   (2001-11-09 15:56) [0]

Только вчера, казалось бы, получил ответ (в этой конфе) и закрыл для себя вопрос, но по дороге домой купил UPGRADE за ноябрь (№21) и прочёл (с.25):
"... работы с матрицами - их перемножение, сложение и т.д. ... До изобретения SSE(сперва MMX) программисты д.б. заставлять камень делать такие действия поэлементно ... Разработчики процессора (Athlon XP) ... добавили ещё и 3DNOW!Professional, поддерживающий SSE на уровне команд. ... такой шаг мотивирован желанием добиться лучшей работы процессора, при выполнении программ, написаных под набор SSE. Тем более, что количество таких приложений растёт, а фирмы ..., например Borland, уже давно пишут компиляторы для вышеупомянутого типа программ".

На этой конфе мне объяснили (я так понял), что под SSE и MMX имеется в виду набор команд, фактически, для параллельных вычислений (при работе с матрицами). Если это так, то хотелось бы понять, какая возможность реализована:

1. Delphi сама оптимизирует матричные вычисления, как параллельные.

2. Delphi предоставляет программисту возможность СВОИМИ методами (Delphi-ими) распараллелить матричные задачи.

3. Delphi предоставляет программисту возможность дополнительными методами (типа Си, Ассемблер и т.д.) дописать понятные ей (и стандартно добавляемые)"вставки" и, всё же, распараллелить матричные задачи.

4. Delphi не даёт возможности РЕАЛЬНО проводить параллельные вычисления.

Итак - ??? (если ответ позитивен, дайте, пожалуйста ссылки на мануалий). Спасибо.



Mbo   (2001-11-10 06:44) [1]

3)- несомненно, MMX задействуется через команды сопроцессора

К сожалению, не встречал технического описания компилятора, в частности, относительно оптимизации под MMX



Александр А.   (2001-11-12 15:40) [2]

Эта строка написана просто для того, чтобы повторить исходный вопрос (см. выше).
СПАСИБО



Mbo   (2001-11-13 08:58) [3]

К слову, из старого опыта -
в начале 90-х была машина с сопроцессором Weitek.
Вещь крутая, для операции надо было загрузить операнды и код операции
по определенному адресу памяти и сразу считать результат. На 386 это 4 такта, если не ошибаюсь, на 486 - 2. Правда, поддерживали этот сопр редкие компиляторы, например, NDP Fortran, и операций очень мало. Так что пришлось написать ассемблерную библиотеку (ТурбоПаскальный ассемблер не поддерживал расширенный режим 386) для вычисления всяких синусов и отдельных частей Фурье и использовать ее. В результате
386-25 на моих счетных задачах обгоняла 486DX266. Трудов понадобилось много.

Думаю, использование MMX может ускорить, например, умножение матрицы на число на порядок.
посмотри
developer.intel.com/software/products/perflib
у меня плохая связь, так что не разобрался, что там есть



Iskander M   (2001-11-13 09:37) [4]

2 Mbo:
Дельфи ничего под MMX не оптимизирует.
Вот в C++Buildere что-то было подобное, если мне память не изменяет.
Но можно с помощью BASM написать все что угодно.



Iskander M   (2001-11-13 09:40) [5]

Извиняюсь. Ошибся. Это адресовано Александру А.

>Дельфи ничего под MMX не оптимизирует.
>Вот в C++Buildere что-то было подобное, если мне память не изменяет.
>Но можно с помощью BASM написать все что угодно.



PGM   (2001-11-15 10:31) [6]

Если нужны подробности по оптимизации под ММХ и SSE, то лучше чем места с информацией чем support.intel.com трудно придумать. Там и библиотек с примитивами уже написанными и оптимизированными Intel под разные процессоры полно. А свое делать надо руками на BASM или в DLL на С.




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




Наверх





Память: 0.73 MB
Время: 0.014 c
1-57092           Юрий М.               2002-02-02 06:33  2002.02.18  
Работа с LPT портом


4-57263           Renard                2001-12-20 18:17  2002.02.18  
список приложений которые находятся в system tray e


1-57049           Ura                   2002-02-01 18:37  2002.02.18  
Опять потоки. Круговорот.


1-57066           derr                  2002-01-26 19:58  2002.02.18  
Как вытащить сообщение из outlook express и раскурочить его


7-57231           Русский               2001-11-12 14:26  2002.02.18  
Ошибка (но в чём ???)