PDA

Просмотр полной версии : Про тормоза на двух ядрах и параметр ProcessAffinityMask.



RR_SHMEL
07.03.2007, 12:52
Не про видео но влияние оказывает :) Обязательно на системах с процессорами Athlon 64 X2 укажите в ил2 использовать 1 (одно) ядро.
Очень часто тормоза возникают из-за этого, причем немаленькие.

NewLander
07.03.2007, 20:47
Не про видео но влияние оказывает :) Обязательно на системах с процессорами Athlon 64 X2 укажите в ил2 использовать 1 (одно) ядро.
Очень часто тормоза возникают из-за этого, причем немаленькие.
Уточнение - на любых мульти-корах. На P-D (как и на А64 Х2) сталкивался с тем же: порой работает нормально, а внезапно скорость резко просаживается (в ~3 раза). Т.к. выигрыша в скорости даже при отсутствии просадки скорости нет, то "заточка" на одно ядро выглядит абсолютно оправданно даже в том случае, если с данной проблемой пока не сталкивался.

RR_SHMEL
07.03.2007, 23:33
Согласен. На праздники еще кору потестю.


.... потестил ... с 100 упало до 25 фпс при тех же настройках.

wolodja
09.03.2007, 02:58
Согласен. На праздники еще кору потестю.


.... потестил ... с 100 упало до 25 фпс при тех же настройках.

По подробнее, пожалуйста.

Alex O.
10.03.2007, 13:20
Давно не садился за Ил-2. Недавно преобрел "платиновую коллекцию". Столкнулся с некоторыми проблемами.
1. Возможно я и ошибаюсь, но помоему основным режимом для Ила считался OpenGL, а DirectX работал через враппер. И некоторые "фишки" из-за этого включались только под OpenGL. У меня под OpenGL жуткие тормоза, хотя карточка неслабая 7950GX2, а под DirectX все просто летает.
2.
Не про видео но влияние оказывает Обязательно на системах с процессорами Athlon 64 X2 укажите в ил2 использовать 1 (одно) ядро.
Очень часто тормоза возникают из-за этого, причем немаленькие.
Наблюдал подобное у себя. Извините за дурацкий вопрос - а как это сделать?

NewLander
10.03.2007, 13:34
Наблюдал подобное у себя. Извините за дурацкий вопрос - а как это сделать?
В conf.ini

[rts]
ProcessAffinityMask=1

RR_SHMEL
10.03.2007, 20:44
По подробнее, пожалуйста.


Что именно поподробнее? Мне кажется все предельно ясно.

wolodja
12.03.2007, 11:31
Что именно поподробнее? Мне кажется все предельно ясно.

Уважаемый RR_SHMEL если Вас не затруднит объясните, при каких условиях тестирования fps понизился в 4 раза? Ведь процессор Core, установлен на другой платформе, или я чего не понял?
Прошу извинить за назойливость.

RR_SHMEL
12.03.2007, 12:09
Причем тут назойливость? ;)

Если читать внимательно посты то мне кажется что очевидно, что фпс понизились при включении в конфиге ил2 поддержки 2 ядер процессора при прочих равных условиях.

Из моих постов и постов NewLandera следует что данная проблема падения фпс в Ил2 свойственна всем двуядерным процессорам - P4 Pentium D, Athlon 64 X2, Core2Duo.

Так как включение поддержки двуядерности не приносит увеличения производительности а чаще всего приводит к значительному и неожиданному ее падению лучше сразу поставить значение ProcessAffinityMask=1 в секции [rts] в conf.ini, или с помощью программы настройки конфига от Филиппка (закладка "Общие", пункт "Использование Hyper Threading" поставить в значение "использовать первый процессор" или "использовать второй процессор").

wolodja
12.03.2007, 12:24
Причем тут назойливость? ;)

Если читать внимательно посты то мне кажется что очевидно, что фпс понизились при включении в конфиге ил2 поддержки 2 ядер процессора при прочих равных условиях.
............
лучше сразу поствить значение ProcessAffinityMask=1 в секции [rts] в conf.ini или с помощью программы настройки конфига от Филиппка (закладка "Общие", пункт "Использование Hyper Threading" поставить в значение "использовать первый процессор" или "использовать второй процессор").

Спасибо за обстоятельный ответ, но не ужели это обозначает, что вместо Core 2 Duo 6600 (или даже дешевле) я мог приобрести более производительный (для данной игры) процессор. Или даже при опции использовать первый (второй) процессор производительность Коры выше, чем у одноядерника.

RR_SHMEL
12.03.2007, 12:37
Спасибо за обстоятельный ответ, но не ужели это обозначает, что вместо Core 2 Duo 6600 (или даже дешевле) я мог приобрести более производительный (для данной игры) процессор. Или даже при опции использовать первый (второй) процессор производительность Коры выше, чем у одноядерника.


Производительность Core2Duo в Ил-2 даже в таком режиме заметно лучше.

NewLander
12.03.2007, 17:07
Из моих постов и постов NewLandera следует что данная проблема падения фпс в Ил2 свойственна всем двуядерным процессорам - P4 Pentium D, Athlon 64 X2, Core2Duo.

Свежачок-с (http://www.sukhoi.ru/forum/showthread.php?t=46545) :)

RR_SHMEL
12.03.2007, 17:52
читал уже :)

wolodja
14.03.2007, 07:11
читал уже :)

Не могли бы Вы привести полную конфигурацию компьютера с Коре 2 Дуо где ФПС падает в 4 раза, и протестировать его программой, ссылка на которую есть в вышеуказанной теме. Дело в том, что у меня на компьютере при выставлении любого значения, кроме "использовать оба процессора" происходит некоторое снижение производительности (ФПС).

RR_SHMEL
14.03.2007, 12:30
Программа пишет что у меня perfect computer :) так что мимо ;)
и вообще ,мне кажется, там описывется и диагностируется проблема падения производительности игр не поддерживающих двуядерность.
Статья - http://support.microsoft.com/kb/909944/ru

Ил как бы затачивался под это дело, но видно немного не доточили. Скорее всего проблема в том что его оптимизировали для Hyper-Threading , технологии для ликвидации негативных последствий супердлинного конвейера процессора Intel Pentium 4 и максимальной его загрузки. Возможно это некорректно иногда обрабатывается в Athlon и Core2duo.

Core2duo 6600/2 gb DDRII800/ Asus P5B/ GF 7950 GT

FilippOk
14.03.2007, 23:42
Ил как бы затачивался под это дело, но видно немного не доточили.
Вообще впервые слышу, что в Иле были/есть/будут оптимизации "под это дело". Есть только необязательный параметр в conf.ini, который сами MG настойчиво советовали не использовать, и всё.

Скорее всего проблема в том что его оптимизировали для Hyper-Threading , технологии для ликвидации негативных последствий супердлинного конвейера процессора Intel Pentium 4 и максимальной его загрузки.
[растерянно] Да? А я думал, что HyperThreading - всего лишь алгоритм эмуляции логической многопроцессорности, и отношения к длинному конвейеру Intel не имел вовсе... эк оно как... :)

NewLander
15.03.2007, 00:00
Вообще впервые слышу, что в Иле были/есть/будут оптимизации "под это дело".

Есть :) В принципе :umora:
На втором ядре (физическом или логическом) висит явовский garbage collector.
Но при наличии достаточного кол-ва оперативки он малоактуален по определению + имеющиеся багоглюки с многоядерностью.

RR_SHMEL
15.03.2007, 01:27
Вообще впервые слышу, что в Иле были/есть/будут оптимизации "под это дело". Есть только необязательный параметр в conf.ini, который сами MG настойчиво советовали не использовать, и всё.

[растерянно] Да? А я думал, что HyperThreading - всего лишь алгоритм эмуляции логической многопроцессорности, и отношения к длинному конвейеру Intel не имел вовсе... эк оно как... :)

А ты не теряйся :D . Знаешь точнее - поправь, я не программист. Вроде я писал уже что проблема свойственно всем двуядерным, ну не правильно донес мысль, че ерничать то сразу?
а может HT к конвейеру всеж имеет отношение ? хоть как то... :D
http://www.intel.com/cd/ids/developer/emea/rus/popular/238502.htm?page=4

P.S. Про заточку "под это дело".. на коробке ЗС в разделе сист.требованийнасколько мне помнится была такая надпись - "оптимизировано под процессор P4 с технологией HT". Может приснилось?

wolodja
15.03.2007, 03:33
Программа пишет что у меня perfect computer :)

То же самое.

Core 2 Duo e6600
Intel p965/LAN MSI Neo-F
pc 5300 1024 DDR 2 (2x512)
GeForce 7900GS TOP/2 DHT

При включении использования двух процессоров возрастает ФПС от 1-3 единиц при различных настройках графики.

FilippOk
15.03.2007, 22:10
Есть :) В принципе :umora:
На втором ядре (физическом или логическом) висит явовский garbage collector.
Видишь ли, насколько я знаю, Java-куча не распараллеливается. Именно из-за множественности запросов и кучи рекурсий. :)

FilippOk
15.03.2007, 22:30
А ты не теряйся :D . Знаешь точнее - поправь, я не программист. Вроде я писал уже что проблема свойственно всем двуядерным, ну не правильно донес мысль, че ерничать то сразу?
Да просто мысль сама по себе неправильна, а как она донесена - пофигу. :)
1. Нет там проблемы. Там есть особенность. Разница понятна? ;)
2. При использовании параметра ProcessAffinityMask падение производительности наблюдается и на одноядерных процессорах.
3. Длинный конвейер P4 не компенсируешь ничем. Это тоже особенность. Даже если установить на мопед не два, а четыре колеса (шесть, восемь, двадцать), быстрее он не поедет.

а может HT к конвейеру всеж имеет отношение ? хоть как то... :D
http://www.intel.com/cd/ids/developer/emea/rus/popular/238502.htm?page=4

Согласен, я не точно выразился. Мою фразу
"HyperThreading - всего лишь алгоритм эмуляции логической многопроцессорности, и отношения к длинному конвейеру Intel не имел вовсе"
следует поправить
"HyperThreading - всего лишь алгоритм эмуляции логической многопроцессорности, и отношения к длине конвейера Intel не имел вовсе".
Другое дело, что реализуется это дело через костыль с лэйблом NetBurst, но это уже совсем не имеет отношения к сабж.
Одноногий человек не станет хромать вдвое быстрее, если дать ему не два, а четыре костыля.

P.S. Про заточку "под это дело".. на коробке ЗС в разделе сист.требованийнасколько мне помнится была такая надпись - "оптимизировано под процессор P4 с технологией HT". Может приснилось?
Может, и нет. У меня коробки нет. Однако, если считать введение в программу параметра-свитча, по включению которого программа пытается задействовать кэширование данных (пусть и не всегда удачно) по заданному потоку - оптимизацией - то да, конечно, заточено, извините. :bravo:

RR_SHMEL
15.03.2007, 23:56
Оттого что проблему назвать особенностью она не исчезнет :)
на одноядерниках такого не замечал если честно, поэтому ничего не скажу.

Мысль была просто в том , что если проблема присутствует только на двуядерниках то возможно причина в оптимизации под технологию HT которая на двуядерниках насколько я знаю не присутсвует уже ( у Athlon тем паче).
Наличие этой оптимизации я "придумал" из тех. рекомендаций МГ и твоей программы, где в закладке "общие" есть пункт "использование технологии HyperThreading" с варинатами использования ядер. Глубина и настоящее наличие этой "оптимизации" мне неизвестно ( аплодисментов не надо :) )
Наконец, я думаю ты согласишся, что разделять что либо в архитектуре современного CPU и говорить что что-то к чему то не имеет отношения - нельзя. И НТ и конвейер и netburst - все есть один процессор.
И что именно в этой связке приводит к возникновению этой "особенности" я не знаю, но предполагал что именно эта связь .
В ЗС у меня прошли почти все вариации современных процессоров от практически всей линейки от P4 (исключая P D) до Core2duo и от Athlon64 до Athlon64 X2. Проблемы ( или особенности если угодно) имел только с Х2 и Core2Duo. Причину возникновения так и не понял.
Статья в базе знаний майкрософта не помогла - ни обновления драйверов, ни отключения диспетчера энергосбережения не помогли. Да и тестовая программа показала что у меня perfect computer.
Подведя итого - проблема есть, решил я ее только одним способом, как и описал в первом посте - с помощью изменения параметра ProcessAffinityMask. Я не прав?
Буду признателен если предложишь другие однозначные способы решения
и укажеш причины возникновения проблемы.

P.S. Про костыли и ускорения работы конвейера
выдержка - "...Если поддержка технологии Hyper-Threading отключена, микроархитектура Intel® NetBurst® обрабатывает на конвейере всего один поток. Напомним, что типичный набор инструкций использует ресурсы процессора Intel с микроархитектурой NetBurst всего лишь на 35%."
Источник - http://www.intel.com/cd/ids/developer/emea/rus/popular/238502.htm?page=4
Вопрос - ускоряет НТ работу конвейера?

FilippOk
16.03.2007, 00:22
Оттого что проблему назвать особенностью она не исчезнет :)

От того, что особенность называть проблемой она тоже не пропадёт. :)
Проблемы - решаются (хоть и не в этом случае), особенности - изучаются. Первые исправляют, ко вторям приноравливаются.

Мысль была просто в том , что если проблема присутствует только на двуядерниках то возможно причина в оптимизации под технологию HT которая на двуядерниках насколько я знаю не присутсвует уже ( у Athlon тем паче).
Видишь ли, с точки зрения программы, что у тебя там - два проца или один, но НТ - без разницы. Распараллеливание либо есть, либо его нет. Остальное несущественно.

Наличие этой оптимизации я "придумал" из тех. рекомендаций МГ и твоей программы, где в закладке "общие" есть пункт "использование технологии HyperThreading" с варинатами использования ядер. Глубина и настоящее наличие этой "оптимизации" мне неизвестно...
Однако проблемой это дело назвать ты смог, переведя ветку в полный оффтоп, начав с тестов своего Core.
Я сделал ошибку. Я должен был выдать плюсы ещё в первом твоём посте от 07.03.2007 13:52. И тем вернуть ветку в русло сабж. Теперь, поскольку я уже принял участие в дискуссии, я могу лишь разделить тему, перенеся оффтоп в отдельую тему.
Что я и сделаю.

И НТ и конвейер и netburst - все есть один процессор.
И что именно в этой связке приводит к возникновению этой "особенности" я не знаю, но предполагал что именно эта связь .
Угу. Колёса, магнитола, водитель, бензин, жена, крикливая тёща, собака, и двигатель - тоже есть один автомобиль. Что именно приводит тряске? Ответ необязателен.

Буду признателен если предложишь другие однозначные способы решения и укажеш причины возникновения проблемы.
Причина одна: кривоватый код Ил-2. За конкретикой - к Олегу на pf[гав]1c.ru.
P.S. Про костыли и ускорения работы конвейера
выдержка - "...Если поддержка технологии Hyper-Threading отключена, микроархитектура Intel® NetBurst® обрабатывает на конвейере всего один поток. Напомним, что типичный набор инструкций использует ресурсы процессора Intel с микроархитектурой NetBurst всего лишь на 35%."
Источник - http://www.intel.com/cd/ids/developer/emea/rus/popular/238502.htm?page=4
Вопрос - ускоряет НТ работу конвейера?[/QUOTE]
Ответ: нет. Тебе не было сказано, что с отключенным механизмом НТ процессор работает на 35% своей производительности.
Нет.
Тебе было сказано, что типичный набор инструкций использует лишь часть ресурсов процессора. И довольно немаленькую. И это так и есть.

RR_SHMEL
16.03.2007, 00:38
Ну оффтоп так оффтоп. Однако.
написал в этой ветке потому как возникает падение фпс и люди начинает пербирать драйвера видео и т.д. хотя проблема не в этом.
пассаж про автомобиль абсолютно лев.
Поступай вообщем как знаешь. Плюсы так плюсы.
нафиг надо вообще что либо советовать.

FilippOk
16.03.2007, 00:48
Ну вот. Расстроил человека. :rolleyes:
Я ж пояснил всё.. эх.

RR_SHMEL
16.03.2007, 00:54
Да не расстраиваюсь я по таким вещам ;)
просто не хочу напрягатся в спорах из-за переливаний -проблема-особенность, там подумал не так, там поглядел не так, не хочу... все это не суть важно. Пояснения убедили только в одном - причина - кривоватый код (сразу скажу - к МГ претензий нет ).
вообщем оффтопить более не буду.

Hammer
16.03.2007, 17:02
Ил как бы затачивался под это дело, но видно немного не доточили. Скорее всего проблема в том что его оптимизировали для Hyper-Threading , технологии для ликвидации негативных последствий супердлинного конвейера процессора Intel Pentium 4 и максимальной его загрузки. Возможно это некорректно иногда обрабатывается в Athlon и Core2duo.

Проблема скорей всего не в двухядерности. Подобные вещи наблюдались на двхпроцессорных машинах, и с другими программами под windows.
Дело тут в потоках которые windows в двухпроцессорной конфигурации может начать перекидывать с проца на проц что вместо увеличения производительности дает ее падение.
AffinityMask это всего лиш указание windows использовать один процессор или в данном случае ядро для данной программы (см.MSDN). Насильственный способ исправить баг windows.

RR_SHMEL
16.03.2007, 18:31
Таакс... :)
вообщем виноват может быть как ил2 так и винда. Спасибо Hammer.Верю специалистам :)
Лечение похоже то одно - изменение параметра AffinityMask. Что в принципе и пережовывается 28 пост.

Satori
17.03.2007, 14:46
Шмель, не поверишь, Е6600, 2ГБ 6300, Асус Р5В Делюкс, ГФ7950256 - никаких проблем. Никаких строк про два ядра в конфе не писал и не собираюсь. Как показатель - в Киеве в онлайне 80 фпс при красоте 85% от максимала (вода зарезана). Другие карты - 120 ВСЕГДА.
Может, потому, что не трахал конф разными улучшателями и винда свежая как и дрова?

FilippOk
17.03.2007, 22:29
...Никаких строк про два ядра в конфе не писал и не собираюсь.
По умолчанию в conf.ini эта строка закомментирована точкой с запятой, специально чтобы не пользовались. :) Т.е. у тебя этой строки и нет, считай.

RR_SHMEL
18.03.2007, 00:36
Шмель, не поверишь, Е6600, 2ГБ 6300, Асус Р5В Делюкс, ГФ7950256 - никаких проблем. Никаких строк про два ядра в конфе не писал и не собираюсь. Как показатель - в Киеве в онлайне 80 фпс при красоте 85% от максимала (вода зарезана). Другие карты - 120 ВСЕГДА.
Может, потому, что не трахал конф разными улучшателями и винда свежая как и дрова?

Почему не поверю :).. поверю.. :)
я просто точно не помню как именно и когда я столкнулся с этой фигней.
причина однозначная и точная - хз. ;) Если у кого то ее нет - оч хорошо. пусть и не парятся. Кто столкнется - попробуйте рецепт, возможно поможет. Все просто.

Satori
18.03.2007, 13:17
Добро. Хорошо бы справочник по проблемам в иле перестал расти. ))