Я оптимизирую матричную числовую точку доступа.
В настоящее время я занимаюсь блокировкой и развертыванием цикла для повышения производительности. Однако я намеренно избегаю стирания границ. Вместо этого я позволяю шагам блокировки переполняться, и, конечно же, алгоритм затем затрагивает неинициализированные значения.
Тем не менее, матрица щедро предварительно распределена, чтобы справиться с переполнением, поэтому я на самом деле не незаконно обращаюсь к ячейке памяти.
Я не делаю пилинг по нескольким причинам:
- Лень
- Падение производительности из-за очень плохой локализации отслаивающегося бордюра.
- Чтобы избежать сложного кода очистки границ.
Однако мне интересно, действительно ли эти переполненные доступы, которые касаются неинициализированных значений, вызовут снижение производительности?
Я предсказуемо знаю, где происходит неинициализированный доступ, и о них также сообщается через valgrind. Я также профилировал код с помощью Intel VTune и не обнаружил никаких признаков, указывающих на снижение производительности из-за этого.
memset
тоже очень дорого. - person SkyWalker   schedule 14.08.2012