fixed point or not fixed point?

Тема в разделе "WASM.A&O", создана пользователем cppasm, 23 июл 2008.

  1. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Я имел ввиду, если у тя значения в таблице не байтовые, а размером в слово или двойное слово... да еще не сначала сегмента табличка начинается ;) (мож не рационально, но такое бывает) (не помню сколько тактов на адресацию по базе со смещением уходит %) )
    Кстати у тя есть инфа про тайтлы вообще, а то чет чувствую недопонимаю это дело... а дело походу оч хорошее
     
  2. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    lea eax,[ebx+eax*4] / mov eax,[eax] ;eax->eax*eax
    вот и все возведение в квадрат
     
  3. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Сколько тактов?
     
  4. chAlx

    chAlx New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2008
    Сообщения:
    74
    Aloner:

    Про тайлы вообще не много пишут: индустрия [временно] отвернулась от них в сторону всяких шейдеров. Так что если разберёшься, порвёшь всех :)
     
  5. GoldFinch

    GoldFinch New Member

    Публикаций:
    0
    Регистрация:
    29 мар 2008
    Сообщения:
    1.775
    сначала нада написать весь кусок кода, оптимизировать под конкретный проц (распараллелить и т.п.) а потом такты считать
     
  6. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Помнится я про них у в DEMO3dDesing читал...но напрактике пока не реализовывал... ксатати в статейку которую ты скидывал, я тоже не во все воткнул
     
  7. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Согласен... но все равно не вариант с таблицей - слишком много памяти
     
  8. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Чтение памяти на любом проце не менее 3 тактов - это если данные в кэше L1, иначе 10-20 из L2 или 100-300 из ОЗУ ;)
    Засунуть всю таблицу в кэш - сами понимаете..., если только размер позволяет и если ее специально предварительно запрефетчить - иначе придется ориентироваться на среднюю латентность между 3 и 300 :)
    Желающие есть "сначала код написать, а затем такты считать" ? :lol:
     
  9. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Значит табличку выгодно только для больших расчетов считать (например лайтмэпы), и самый быстрый способ возвести в квадрат - это все таки напрямую умножить число с фиксированной запятой само на себя (умножение помоему за 3 такта осуществляется на современных процах).
     
  10. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    Да и к тому же таблички должны быть сравнительно малого размера и обращение к ним должно быть сравнительно частым - тогда можно расчитывать, что они будут сидеть в кэше.

    В AMD 64 за 3, в атлонах ХР и интеловских P6 за 4. Только в горячих монстрах P4Е за 10, а в первых моделях и вовсе за 14 (но зато у них частоты задраны за 3ГГц).
    Однако напомню, что несмотря на приличную латентность, независимые умножения (впрочем как и загрузки из памяти) могут выполняться в каждом такте, поэтому при достаточно простых расчетах в цикле латентность умножения может вообще не сказываться (Т.е. задержка одного умножения = 4, но задержка цепочки скажем из 100 независимых умножений подряд = 4+100, т.е. чуть больше 1 такта в пересчете на каждое)
     
  11. Aloner

    Aloner New Member

    Публикаций:
    0
    Регистрация:
    11 апр 2008
    Сообщения:
    96
    Да уж, тут надо четко под код все рассчитывать, что бы получить максимум. Я вот до сих пор так и не решил юзать фиксированную точку или с плавающей все таки работать... Первые все таки быстрее (у меня в коде), а плавающие более гибкие, да и вроде можно работу с ними хорошо оптимизировать... Кармак тоже фиксы рекомендовал %)))
     
  12. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Я вообще данную тему не понимаю, о каких вычислениях идет речь, о графических ли картах или о чем другом...

    Только вот мне кажется, что fixed point это абсолютно тоже самое, что и целый тип. Так, если мы работаем в целых 32 разрядах, а в уме держим знаменатель 2^32 или 2^16, то это и будет фиксированная точка, разве не так?
     
  13. chAlx

    chAlx New Member

    Публикаций:
    0
    Регистрация:
    17 июл 2008
    Сообщения:
    74
    Правильно. А not fixed point -- не то же самое ;)
     
  14. persicum

    persicum New Member

    Публикаций:
    0
    Регистрация:
    2 фев 2007
    Сообщения:
    947
    Ну наверное не совсем... В fixed point после целочисленного умножения нужно проводить коррекцию - отбрасывать младшие разряды.. что это за термин кривой - not fixed? Float или floating вроде того...