Jump to content

Настройка, оптимизация, конфиги


Recommended Posts

Posted

Итак, в погоне за драгоценными FPS в "акуле" проделал ещё один эксперимент - поставил висту (32-bit edition). И о чудо - FPS на моей системе (P4 Prescott 3.2@3.6 GHz, 2GB RAM, Ati Radeon HD3850 512MB) подрос в среднем на 4-5 на тех же настройках, что и в XP (скопировал файлы options.lua и graphics.cfg в новую установку и подкрутил в видео драйвере AA и AF). Сравнивал в обеих системах на трэке "шоу".

Windows XP SP3: вид снаружи, количество объектов в сцене приближается к 2000 - FPS падает до ~15...

Windows Vista Ultimate (32-bit edition): вид снаружи, количество объектов в сцене приближается к 2000 - FPS падает до ~20...

Заодно попробовал процессу dcs.exe разрешить использовать "второе ядро" (проц одноядерный, но с включенным HyperThreading, поэтому в системе виден как два ЦП) - как я и предполагал эффект равен нулю, что в XP, что в висте.

Для полноценного эксперимента можно было бы поставить "чистую" WinXP SP2, но и в моей XP SP3 во время теста сторонние (не родные для винды) процессы предварительно убивались, кроме антивиря и ATT (но они были запущены и в висте). Дрова видео в обеих системах были Catalyst 8.10 Hotfix (т.е. последние на этот момент).

  • Like 1
  • Replies 1.6k
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)

Dmut

Заметь, я не критиковал ваше творение никогда. Просто меня раздражает такой тон разговора с обычными юзерами вашего продукта. Вы тупо затыкаете рот другим, говоря что все это чушь. Просто надоело уже терпеть. Я этот форум просто читал с 2006го и лишь в этом году зарегистрировался и вот теперь НАКИПЕЛО ПРОСТО.

 

Когда проверил пост товарища про прогу CPU Control и отписался, что действительно есть прирост производительность, мне уважаемые девелоперы начали твердить обратное и етц. Знаешь, очень неприятно слышать в свой адрес подобное. Мол ты не прав и хоть тресни. А я два раза написал, что действительно акула стала плавней работать, т.е. просадок ФПС стало меньше. НО опять же девелоперы взгромоздились на свой трон откуда чернь(т.е. простой народ) просто отфутболили сказав, что это не возможно. Еще раз пишу, что паралельное выполнение одного потока возможно на двух и более конвеерах. Блин, об этом подробно написано в Intel Programming Reference(Manual) x86. Подобный функционал был заложен еще в Pentium II, а в Core 2 Duo и старше только расширен и улучшен. Ознакомся для начала с архитектурой под которую программируешь. Windows XP и младше просто не несли подобного функционала в ядре. Подобная обработка целиком и полностью должна управлятся программно(из ядра ОС) и аппаратным декодером инструкций процессора. Да, выполняются паралельно не зависящее друг от друга инструкции. И еще скажите, что это не возможно или это не паралельное выполнение скажете вы? Собсно вот я в это и вцепился, потому, что тут вы господа не правы.

AndreW82

 

От HT выигрыша не будет. А вот уже от 2х ядер выигрышь будет заметен. Камень слабоват, но раскинув ЧА на 2 ядра провалов ФПС стало меньше гораздо. Сегодня отлетал тяжелую мисиию на ура просто.

 

з.ы. Это называется Суперскалярное выполнение и архитектура, появилась еще в самых первых Pentium. Опять же это все описано в Intel Programming Reference

Edited by eXceed

Welcome to the Rock

Posted
Еще раз пишу, что паралельное выполнение одного потока возможно на двух и более конвеерах. Блин, об этом подробно написано в Intel Programming Reference(Manual) x86. Подобный функционал был заложен еще в Pentium II

Как-то это совсем не тоже самое, что многопоточность или многоядерность... :smilewink:

Posted (edited)
Еще раз пишу, что паралельное выполнение одного потока возможно на двух и более конвеерах. Блин, об этом подробно написано в Intel Programming Reference(Manual) x86.
приведи цитату, где говорится, что выполение потока может происходить на двух ядрах одновременно. суперскалярная архитектура - это совсем другое и появилась она в линейке x86 ещё в Pentium Pro

 

ps: в той ветке я просто недосмотрел, что акула делает свой setaffinity; по умолчанию винда назначает процесс на все ядра и для этого не нужно использовать никаких утилит, поэтому я был против использования разных cpu control и похожих.

я согласен, что на большинстве конфигураций предпочтительнее назначать "акулу" на все ядра, она будет идти плавнее - при нагрузке одного ядра каким-либо периодическим процессом винда перекинет акулу на другое ядро. но это не означает одновременное исполнение кода двумя ядрами.

Edited by Dmut

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

Posted
Еще раз пишу, что паралельное выполнение одного потока возможно на двух и более конвеерах. Блин, об этом подробно написано в Intel Programming Reference(Manual) x86.
А чем конвейеры от ядер отличаются - в это же мануале не написано случаем? :)
Подобная обработка целиком и полностью должна управлятся программно(из ядра ОС) и аппаратным декодером инструкций процессора.
О как! ОС уже управляет конвейерами процессора?

JGr124 "Katze"

Posted

JGr124_MUTbKA

 

ОС непосредственно не управляет конвейером, ядро балансирует нагрузку на ядра и заведует распределением квантов времени потокам. Этим занимается менеджер ресурсов ядра.

 

Dmut

 

Это называется ILP - Instruction Level Parallelism(основа суперскалярной архитектуры). Хорошо описано здесь.

Смысл в том, что чем больше исполнительных модулей - тем больше инструкций можно выполнять параллельно. Не важно сколько у тебя ядер. Ядро по сути это лишь еще несколько исполнительных модулей. Тем более учитывая то, что кэш общий то проблем с синхронизацией на исполнительных модулях не возникнет. Тем более декодер инструкций один на ядро работающий на общем кэше(кэш инструкций, введен в P4, один на оба ядра).

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

з.ы. ILP подробно описан в Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 2B

  • Like 1

Welcome to the Rock

Posted

swu

 

Либо поставь CPU Control прогу и переключи dcs.exe на два ядра, либо руками в диспетчере задач установи соответствие на DCS.exe 2 ядра.

Welcome to the Rock

Posted (edited)

скачал, поставил.

достаточно ли установить автоматик?

 

 

р.с поставил автоматик закрыл(не свернул), запустил ча, открыл диспетчер - там лаунчер на 2е ядро, поставил на оба, запустил просмотр трека, открыл диспетчер - там дцс на 2 ядра уже стоит. просмотрел трек, скрин диспетчера прилагаю, поднятия быстродействия незаметил :(

1203365660_.JPG.62534bf01144355d69069e6490d88a1b.JPG

Edited by swu

WR=012=SWU

Posted

swu

 

Работает только на Windows Vista или Windows Server 2003 к сожалению. Владельцы Windows XP отдыхают.

Welcome to the Rock

Posted

жалко, но висты у меня нет, хотя подумываю создать раздел на харде с вистой и играми под неё.

а пока и хп хватает :)

програмулину стоит удалять иль вреда как и пользы небудет :)?

WR=012=SWU

Posted

swu

 

От нее толку мало. Можно руками в диспетчере задач выставить раз и потом автоматически будет запускаться на 2х ядрах.

 

А висту попробуй. Если не хочешь гимора с вистой, попробуй Windows Server 2003 Standart + SP2. Работает без проблем. Виста сделана на модифицированном ядре Сервер 2003 и поэтому такой фокус работает, а по юзабилити ближе к родной ХП.

Welcome to the Rock

Posted

"Можно руками в диспетчере задач выставить раз и потом автоматически будет запускаться на 2х ядрах."

 

только что проверял, запустил ЧА, открыл диспетчер, дцс на 2м ядре, незапоминает :(

в принципе проблем с производительностью нет, но хочется чтобы всё было по макс. :)

WR=012=SWU

Posted

swu

 

Возможно в ХП не запоминает, но в Windows Server 2003 нормально все(на ней работаю). Ну тогда CPU Control тебе в помощь, благо ЧА адекватно теперь реагирует на сворачивания.

Welcome to the Rock

Posted

У меня ХР х64, она на ядре 2003 сервера, прироста от двух ядер не заметил, хотя толком не тестил еще, как можно запустить ЧА на двух ядрах без применения програм и сворачивания, может разработчики файлик какой кинут, хлопотно ли переделать экзешник ЧА, чтобы сразу на двух ядрах шла?

Maximus VII Ranger,4690K, SSD PLEXTOR M5 Pro 128Гб, RAM 16Гб, NVIDIA GTX-970, X-52PRO, TR-4, MG279Q

Posted
JGr124_MUTbKA

Это называется ILP - Instruction Level Parallelism(основа суперскалярной архитектуры).

Сэр, вы не правы.

1. Данная функциональность должна поддерживаться компилятором

2. ----//----//---//----//---//---//--- быть включена на уровне компилятора

3. Данная функциональность распаралеливает только независимые вычисления. Т.к. в движке всё завязано на кадр/сек, то как ты понимаешь, независимых вычислений нет.

 

Если ты нарисуешь диаграмму распределения потоков по ядрам, думаю ты поймешь, почему у тебя прирост производительности.

А в Висте, кстати, крайне изменилось ядро ОС в отношении тсэка памяти и распределения процессорного времени, поэтому и игра идет более градко.

Всё сказанное автором - вымесел, и не может быть использовано как доказательство в суде.

Мой блог | My blog

Posted

FreemanRU

 

Кто сказал, что от компилятора зависит? Компилятор не решит задачи декодирования инструкций и отправки на выполнения. Читай выше, я писал, что ILP возможен на ИНСТРУКЦИЯХ работа которых не зависит друг от друга. Привязка к кадрам тут ничего не решает, т.к. ILP работает уже на готовом байт коде. Или ты думаешь, что каждая инструкция движка зависит от предыдущей?

Как это работает читаем тут. И впредь попрошу сначала ознакомиться с сутью вопроса и прочесть документацию, а потом высказывать свое мнение.

 

z1

 

Windows XP 64 построена на ядре Windows XP ;)

Welcome to the Rock

Posted
FreemanRU

 

Кто сказал, что от компилятора зависит? Компилятор не решит задачи декодирования инструкций и отправки на выполнения. Читай выше,

Ну вот и чтай:

A goal of compiler and processor designers is to identify and take advantage of as much ILP as possible

Перевод:

Цель компилятора и проектировщиков процессора состоит в том, чтобы идентифицировать и использовать в своих интересах так можно больше ILP

 

Именно на стадии компиляции обпределяется, какие инструкции независимы и могут быть распаралелены, а какие нет. Как по твоему на уровне скомпилированного приложения, когда есть вызовы внешних библиотек и пр.

Всё сказанное автором - вымесел, и не может быть использовано как доказательство в суде.

Мой блог | My blog

Posted

FreemanRU

 

Разработчики процессора учитывают эти особенности в декодере инструкций, а компиляторы со времен еще Pentium умеют оптимизировать код под Pentium и старше, да и компилер тут мало чего решает. Главное эффективность декодера инструкций.

Welcome to the Rock

Posted

Наслушался вас.

Рискнул поставить зверя XP 64.

 

a1wgtML8RA.jpg

 

Пока под рукой только Локон для тесту, но он пошёл гораздо плавнее,

Ни фризов ни подгрузок. что было ранее на ХР (х86)

 

 

Сразу вопросов парочка возникла, ХП64 на диске "С" делает 2 папки, Program Files и Program Files(Х86) , для 64 и 32 битных приложений соответсвенно, вопрос , если я ставлю обычную,32 битную игру, например на логический диск D,

там тоже нужно создавать папку с именем например Lockon(Х86) ?

--------

И ещё что за фишка такая " Повышенная производительность" В свойствах винчестера ?

yg2ZE84uMS.jpg

 

В ХР32 вроде не было такой.

Л.Н. Гумилев - «Нынешняя интеллигенция — это такая духовная секта. Что характерно: ничего не знают, ничего не умеют, но обо всем судят и совершенно не приемлют инакомыслия...»

Posted
FreemanRU

 

Разработчики процессора учитывают эти особенности в декодере инструкций, а компиляторы со времен еще Pentium умеют оптимизировать код под Pentium и старше, да и компилер тут мало чего решает. Главное эффективность декодера инструкций.

 

Компилятор очень важен.

Он так код сгенерит, что ты в дизасме можешь даже логику не понять своей же программы.

Здесь все важно.

Posted (edited)
swu

 

Возможно в ХП не запоминает, но в Windows Server 2003 нормально все(на ней работаю). Ну тогда CPU Control тебе в помощь, благо ЧА адекватно теперь реагирует на сворачивания.

 

 

eXceed, так получается, что и в ХР на двухядерном проце (Е8600) все равно имеет смысл раскидывать ЧА на 2 ядра? Ведь Дмут сказал, что ЧА при запуске сама выставляет афинити на 1-ое ядро. Это происходит при запуске, что в ХР, что в Висте, no matter what правильно? Т.е. и в ХР можно и нужно нейтрализовать каким-то образом акулий SetProcessAffinityMask (на 1-ое ядро). Логика здесь есть? Спасибо за Ваш ответ.

 

Вообще, вы очень так приятно и с пониманием все объясняете. А у меня вот просьба: мне б тоже хотелось хоть немного прироста и дополнительной плавности получить на ХР, а то вы вот заладили все "Виста" да "2003 Сервер". Я читал, что и на ХР люди тоже получают с CPU Contol какие-то положительные эмоции. Мне много не надо, но тем, кто с ХР, хоть что-нибудь достанется здесь в конце-концов? А то что-же, 30+ страниц прочитал и остался с кукишем получается? Больше 5ФПС в одни руки на ось не давать! :cry:

Edited by Sabre
Posted
eXceed, так получается, что и в ХР на двухядерном проце (Е8600) все равно имеет смысл раскидывать ЧА на 2 ядра? Ведь Дмут сказал, что ЧА при запуске сама выставляет афинити на 1-ое ядро. Это происходит при запуске, что в ХР, что в Висте, no matter what правильно? Т.е. и в ХР можно и нужно нейтрализовать каким-то образом акулий SetProcessAffinityMask (на 1-ое ядро). Логика здесь есть? Спасибо за Ваш ответ.
тут нет ничего мистического, акула на старте делает примерно тоже самое, что ты делаешь ручками в task manager, то есть выставляет себя на первое ядро. если ты после старта сима (не редактора!, то есть когда "нажмите на паузу" появилось) сделаешь ей affinity на два ядра, то это будет примерно тоже самое как будто акула себе ничего не выставляла.

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

"There are five dangerous faults which may affect a general: recklessness, which leads to destruction; cowardice, which leads to capture; a hasty temper, which can be provoked by insults; a delicacy of honor which is sensitive to shame; over-solicitude for his men, which exposes him to worry and trouble." Sun Tzu

[sigpic]http://forums.eagle.ru/signaturepics/sigpic2354_5.gif[/sigpic]

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...