Mem Test Trouble

Тема в разделе "WASM.ASSEMBLER", создана пользователем Exception13, 17 фев 2005.

  1. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Вобщем, задался целью написать прожку для тестирования пропускной способности памяти. За эталонное значение взял результаты из SisSoft Sandra. Написал, в результате получил, что на инструкциях типа stosd скорость получается выше чем при использовании MMX (movq) и SSE(movaps), но гораздо ниже (где то в два раза), чем показывает Sandra. Участок памяти под тест: 64 Мб (чтобы исключить записи в кэш). Потом попробовал использовать инструкции с управлением кэшированием типа movntps и movntq, при этом прога выдает какие то цифры нереальные, но только при первом запуске, а при последующих - все стабилизируется. И по прежнему с Сандрой не сходится.

    Посмотрите сырцы может что посоветуете.

    А то меня это сильно зацепило, почему в Сандре больше чем у меня в однозадачной 32 битной проге.
     
  2. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Прошу прощения, лажовый архивчик выложил в прошлый раз.

    [​IMG] 159151814__Test_CPU.zip
     
  3. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    А ты пропускную способность памяти как считаешь?

    кол-во_памяти / время_за_которое_заполняется (считывается)

    Это скорость записи (или чтения) получается.

    Пропускная способность (bandwidth) - это сумма считанных и записанных байт за время.

    Т.е. копируешь, делишь на время и умножаешь на 2 :).



    А stosd быстрее - потомучто на PIV это аппаратно ускорено, а movq и movaps - не самые эффективные команды записи в память, так как пишут сквозь кэшь. Вот почитай
     
  4. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Да, что то я стормозил, ведь меряю я только по записи.

    Вот попробовал потом и на чтение, усредняю, в итоге на 20 Мб/с больше чем в Sandra.

    Сыпасибы S_T_A_S_ за ссылочку. Есть теперь обо что голову ломать :)
     
  5. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Усреднять - тогда получится "усреднённая скорость чтения/записи"

    Современная PC - не фоннеймановская машина, поэтому такой подход imho не правилен.

    Можно просто измерять скорость копирования и умножать на (поскольку при этом происходит и чтения и запись).

    По крайней мере я так делал и результаты хорошо соответствуют Сандре.

    [​IMG] _149802809__memcopy_test.zip
     
  6. Exception13

    Exception13 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2005
    Сообщения:
    66
    Адрес:
    Владимир
    Сыпасибы S_T_A_S_, разъяснил что к чему.

    Я вот начал тут играться с такой штукой как виртуальная машина VMware. И никак не понимаю за счет чего это вообще существует и почему оно работает. Т.е. как из защищенного режима запускается прога а в ней можно запустить хоть DOS, хоть Windows. Причем из запущенного доса работают стабильно все прожки, которые переключают проц в PM, хотя, по сути дела он уже в этом режиме работает.
     
  7. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Про VMware лучше бы отдельную ветку создать - больше шансов, что будут толковые ответы.

    Это эмулятор x86, но муляция сквозная, т.е. только для привелигированных инструкций (для этого используется драйвер)