Почему в гугле предпочитают быстродействующие процессора экономичным.
Закон Амдаля: S=1/((1-P)+P/S). S - общее ускорение, P - доля ускоряемого кода в коде программы (доля времени выполнения), S - ускорение этого самого ускоряемого кода. Коротко P и (1-P) можно называть "обработкой" и "анализом
(
Read more... )
Reply
Reply
Для прикладух -- да, почти пофиг. Разве что надо бы прикидывать, как эта прикладуха будет оптимизироваться с учетом особенностей железа. Например, банально переколбасить алгоритм так, чтоб компилятор переложил его на какой-нибудь SSE/MMX/Neon/итп.
Reply
Reply
без него у программиста больше контроля и, теоретически, можно сильнее оптимизировать, особенно в многопоточном/многозадачном окружении, когда время от времени случается переключение контекста с выгрузкой всего или почти всего "кэша". (регистры - это предельный случай кэша)
Reply
Reply
Reply
Reply
>Послабже, ага. IBM Cell BE с его 8*8*3,6 = 230 Gflops без видеокарты супротив распоследнего пентиума с его 4*3,6 = 14,4 Gflops. Или процессор Xbox 360 с альтивеком на три ядра и теми же 3,6 GHz, 45 Gflops.
А вы не с пентиумом, а с гефорсом сравнивайте. Тогда будет корректно.
Кстати, под шейдеры тоже надо хитро выравнивать, ну, или, делать как попало и скармливать драйверу OpenGL, который переразложит всё как надо и куда надо.
Reply
У PS3 и XBox 360 вполне приличные (на то время) видеокарты.
Проблемы с обходом дерева форм столкновений находятся не на "гефорсе", а на процессоре. Это необходимо для общей скорости работы. И это задача уровня gcc, на которой всё и тормозит. И которую оптимизируют.
Как и передачу моделей и прочего на отрисовку.
Ещё раз - я там работал, я знаю, что к чему. Например, мой коллега добился 360 fps на типичных сценах нашей игры за счёт того, что комбинировал статические модели в одну. Это, как раз, уровень логики, анализа, а не параллельной обработки. А вот после включения звука, физики и прочего получались стандартные 30-60 fps. И оптимизировали мы физику (анализ), а не отрисовку.
Так что я аргументы про "гефорс" не приму.
Reply
> местами криво ложится на реальное железо
Поясни, пожалуйста.
Во-первых, какая это "любая" абстракция, в каких именно пределах "любая"?
Во-вторых, почему это высказано так обобщённо? Может быть, таки возможны исключения?
Reply
Reply
К задачам типа "gcc" относятся и более практичные нагрузки, например, обход списков в ядре линукса и тому подобное.
Мне известны исследования, в которых прямо утверждается, что много параллельных процессов проще выполнять на in-order, но когда дело дошло до анализа, то лучше иметь процессор с хорошим ILP, а это - барабанная дробь! - обязательно out-of-order.
"Ум" компиляторов хорошо показал Itanium, который обгоняет x86 только в присутствии громадного кэша.
Reply
Reply
Reply
Reply
Leave a comment