Что такое SEE, SEE2 и MMX?

Тема в разделе "WASM.BEGINNERS", создана пользователем eretik, 7 сен 2005.

Статус темы:
Закрыта.
  1. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
    Приветствую всех! Конечно, может быть этот вопрос уже звучал на форуме (приношу извинения администратору), но не мог бы мне кто-нибудь объяснить, не вдаваясь в подробности, что такое SEE, SEE2 и MMX? Еще хотелось бы узнать, как это всё использовать. Буду очень благодарен!
     
  2. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Если не пугает аглицкий, то например вот:

    http://en.wikipedia.org/wiki/MMX

    и еще (эт меня самого носом ткнули :)

    http://codenet.ru/progr/optimize/simd.php

    это даже по-русски.



    А если вкратце - набор векторных инструкций, то есть таких, что позволяют производить операции типа

    a[0] = b[0] + c[0];

    a[1] = b[1] + c[1];

    a[2] = b[2] + c[2];

    a[3] = b[3] + c[3];

    одной операцией.



    при этом MMX - целочисленные, используют регистры сопроцессора, точнее по 64 бита из них (mm0 - mm7) как упакованные 8 байт / 4 слова / 2 двойных слова,

    SSE - вещественные, single precision, используют отдельные 128-битные регистры (xmm0 - xmm7), каждый как 4 упакованных вещественных числа одинарной точности.

    SSE2 - целочисленные или вещественные двойной точности в xmm-регистрах.

    Ну и еще всякие тонкости, например SSE и SSE2 вводят дополнительные команды MMX.



    А насчет как это использовать... ну как-нибудь :)
     
  3. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
    Спасибо огромное. Постараюсь прочитать оба варианта. А на практике такие мудрености часто используют? Просто я никогда ещё не встречал такие команды в прогах.
     
  4. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    eretik

    Это создавалось для Multi-media: потоковая обработка звука, графики, видео. Вот в тех прогах и надо смотреть.
     
  5. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
    Теперь понятно. Спасибо. А случайно вы не подскажите какую-нибудь такую прогу (только попроще), чтобы я мог на практике изучить эти команды?
     
  6. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    eretik

    У аэмдешек мат. библиотека выложена, вроде оптимизенная под SSE. Врать не буду - у самого еще руки не дошли поковыряться.

    А вообще лучше почитать что-то типа

    AMD Athlon™ Processor x86 Code Optimization Guide

    или Intel'овский аналог - сходу не нашел, к сожалению - там все толково описано, с примерами.
     
  7. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
    Печально... Мне как раз под Intel надо было. Но ничего. Попробую поискать самостоятельно. Огромное спасибо за помощь. Постараюсь, чтобы ваши старания не пропали даром. Еще раз благодарю за помощь!
     
  8. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
  9. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    eretik



    Дык, там по MMX/SSE - а оно у всех одинаковое.
     
  10. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
    Ну ладно. Раз один фиг, то посмотрю AMD. Спасибо.
     
  11. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
    Ну ладно. Раз один фиг, то посмотрю AMD. Спасибо.
     
  12. eretik

    eretik New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2005
    Сообщения:
    12
    Адрес:
    Russia
    Ну ладно. Раз один фиг, то посмотрю AMD. Спасибо.
     
  13. Ustus

    Ustus New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2005
    Сообщения:
    834
    Адрес:
    Харьков
    Только с оптимизацией надо аккуратней - инструкции-то у них одинаковые, только архитектура-то разная, поэтому например (это даже не MMX) на Pentium4
    Код (Text):
    1.  
    2. push   eax
    3. push   ecx
    4. push   edx
    5. push   ebx
    6. push   esi
    7. push   edi
    8.  


    выполняется быстрее, чем
    Код (Text):
    1.  
    2. pushad
    3.  


    а на Athlon - наоборот. Сам проверял.
     
Статус темы:
Закрыта.