Всем привет,
Прежде всего, я очень рад, что есть много людей сейчас там пытаются улучшить ядра. Спасибо за это!
Во-вторых, если я могу спросить тебя об этом ... Не могли бы вы быть очень очень осторожным при введении этих изменений? По осторожным, я имею в виду проверить ваши изменения, по крайней мере, один день или около того, и посмотреть, что происходит. Как хорошо, глядя на результаты DISASM в анализаторе ядра никогда не повредит
В-третьих ... Большинство изменений, которые я видел сделку с удалением некоторых добавлений и прочее. Как правило, любой современный компилятор должен быть в состоянии удалить все бесполезно добавляет, такие как добавление две константы и т.д. Так что я не видел причин, эти изменения фактически помогают со скоростью. Тем не менее, некоторые из них помогают, что оправдано, по крайней мере некоторые, глядя в то, почему они помогают. Так...
В-четвертых. Вот почему я думаю, что они помогают. Большинство компиляторов вырывают выражения типа (а&б) + с и заменить его с одной константой, до тех пор, как, б, в константы. Однако. Они не будут делать это, если вы используете характеристическую в выражении. Например, если вы делаете вращаться как х<<(32-п) | Икс>>п, для постоянных х и п всего выражения будет заменяются только с одной константой. Однако, если вы используете amd_bitalign для этого, он не будет замещаться постоянным (особенно если вы делаете это для Ch / майором, который исправленной - как можно это?). Тем не менее, если вы делаете во вращение с помощью bitshifts но х или п не являются константами, вы будете замедлять вещи вниз, потому что теперь компилятор не может оптимизировать его, и вы заменили bitalign () с кучей ОПС. Так, Короче говоря, меньше и больше встроенных функций константные выражения, вероятно, причина ваши изменения помогают.
PcChip и я проверил эту теорию; мы заменили вращаем, которые используют встроенные функции с поворотом, который использует сдвиги и или-s (т.е. материал, компилятор может легко видеть сквозь) для входов, которые являются постоянными. У нас есть 1-2% улучшение, PcChip отправил ядро здесь http://pastebin.com/NPDTfAVd, но мы сделали это только вращается ... если кто-то может пройти через ядро тщательно и найти другие константы и постоянные выражения, которые могут быть удалены, это, вероятно, поможет еще больше.
В-пятых. Вы можете пожертвовать монеты, но также рассмотреть вопрос о передаче в дар PcChip и оригинальные автор этих ядер; эти люди приложили много работы в шахтер, что каждый использует, и они заслуживают пожертвований больше, чем какой-то чувак, который случайно заметил улучшение Мы на 3% ()
(Также, я не быть критическим или слишком преднамеренный, просто делюсь некоторые вещи, которые я знаю, это все мое личное мнение, я могу ошибаться, так что не стесняйтесь критиковать и / или не согласны)