Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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 на С.



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

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

Наверх




Память: 0.46 MB
Время: 0.006 c
3-57035
dm
2002-01-25 13:50
2002.02.18
RecordSet


3-57022
Rustik
2002-01-24 15:35
2002.02.18
Базы данных


3-56992
SelfDestructor
2002-01-23 16:37
2002.02.18
Как загрузить поле таблицы типа Memo из текстового файла?


1-57153
ola
2002-02-04 09:49
2002.02.18
crazy query


1-57127
KvORubin
2002-02-02 20:20
2002.02.18
Приветствую!!! Помогите!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский