Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: CL | DM;

Вниз

Поддержка SIMD   Найти похожие ветки 

 
VMcL   (2003-05-07 13:53) [0]

Предисловие:

Насколько мне известно, для того, чтобы определить поддержку SIMD инструкций (MMX, 3DNow!, SSE и т. д.) нужно проверить соответствующие флаги процессора. Но: поскольку такие инструкции, как SSE, SSE2, появились относительно недавно, в мультизадачных средах, которые работают в Protected Mode, нужно проверять ещё поддержку данных инструкций операционной системой, то есть применяя try/except. Пробовал и в Win2K, и в WinXP протестировать таким образом поддержку SSE (команды movups, addps) (на соответствующих CPU, естественно :) — везде Exception.


Собственно вопросы:

Есть ли в этих ОС поддержка SSE, может я что-то неверно сделал? Если нет, можно ли их как-то пропатчить (Service Pack и т. п.), чтобы оная появилась.


 
Digitman ©   (2003-05-07 14:14) [1]


> проверять ещё поддержку данных инструкций операционной системой,
> то есть применяя try/except


при чем здесь ОС ? если какая-либо инструкция из какого-либо (потенциально присутствующего) расширения системы команд не может быть выполнена процессором, то генерируется прерывание, и его обработка - стандартна для ОС, вне зависимости от инструкции.

try..except же - лишь Паскаль-"оболочка" механизма низкоуровневого перехвата/обработки/раскрутки исключения

возможно, тебе следует обратить более серьезное внимание на существующие библиотеки (например, от Intel), которые реализуют достаточно серьезные и сложные алгоритмы с высокоэффективным использованием тех или иных расширений системы команд процессора. Например, Intel MKL (math kernel library), Intel SPL (signal processing library). Все , что от тебя потребуется в дан.случае для реализации проверки - вызов экспортируемых этими библ-ками ф-ций, отвечающих за инициализацию. В ходе инициализации как правило и выполняется проверка на доступность того или иного расширенного набора инструкций, и, если инициализация не выполнена успешно, тебе об этом будет сообщено кодом отказа, в т.ч. - и отказа по невозможности задействовать конкретные расширения системы команд.


 
VMcL   (2003-05-07 14:57) [2]

Мне нужно написать это самому, не используя внешние библиотеки.

Поэтому:
1. "Intel MKL" не конает :(

2. try/except я использую, потому что хочу в своей программе узнать, есть ли поддержка SSE (например), и в зависимости от этого или использовать SSE или нет, а не тупо получать "SomeProgram.exe generated an error"

3. Метод с try/except описан в документации как необходимый после проверки процессора, и приведенные библиотеки, IMHO, делают то же самое.


 
Digitman ©   (2003-05-08 09:29) [3]

зайди-ка ты на сайт к Intel"у да скачай себе PDF-мануал
"Intel Architecture Software developer"s Manual. Volume 2: Instruction Set Reference"

в разделе 3.1.10 ("SIMD Floating-Point Exceptions) подробно описаны исключения, генерируемые ЦП при работе с инструкциями расширения


 
VMcL   (2003-05-08 13:58) [4]

Digitman,
именно про ЭТУ документацию я и писал (07.05.03 14:57).
А также у меня есть часть 1 и 3 плюс рекомендации по оптимизации.

Так вот. Я уже сам разобрался сегодня утром (за 10 минут:)

Проблема была только в том, что я не выровнял данные по границе 16 байт в команде addps. А SSE, как оказалось, понимаеь даже :) Win98 SE


 
Digitman ©   (2003-05-08 15:06) [5]

ну а почему бы Маздаю и не "уметь" обрабатывать как минимум такие исключения ? не понимаю ... что в этом - нонсенс ?


 
VMcL   (2003-05-08 18:20) [6]

При чём здесь УМЕТЬ обрабатывать исключения?

Было бы неплохо, Digitman, сначала внимательно прочитать мои посты, а потом писать ответы. А то получается, я говорю об арифметике, а Вы о геометрии :)


 
?!   (2003-05-09 09:26) [7]

Удалено модератором



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

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
14-55752
Andy_
2003-07-03 08:55
2003.07.17
Bevel and Image


14-55723
KILLER_ABV
2003-07-02 15:39
2003.07.17
TmsComponentPack


14-55717
AstaLabista
2003-07-01 05:43
2003.07.17
где отрыть исходник нюка


14-55781
yaJohn
2003-06-30 16:21
2003.07.17
В инет по левому шнурку


3-55414
AlexTregubov
2003-06-23 23:45
2003.07.17
Упаковка базы данных MS Access