говорит, что раунды и ксоры там есть
Я незнаю что такое SIMD
Но при этом хочешь считать такты и инструкции?
Ну с чего та начинать надо
Что такое гугл, видимо, тоже...
Ну начинать можно, но можно получить не имеющее отношения к реальности число)
только причем тут simd? Он вроде про другое. Аля про gpu, где много ядер молотят разные данные по одинаковым инструкциям
из известных мне эффектов (а сейчас придут эксперты и еще 10x пунктов накидают, наверное): разные инструкции стоят по-разному инструкции могут исполняться в той или иной степени одновременно (типа было четыре инструкции, каждая занимает четыре такта, но суммарно исполнятся тоже за 4 такта) работа с переменными в зависимости от паттернов доступа может быть очень дешевой, а может быть дороже даже дорогих инструкций (но опять же см. пункт выше)
ну так ОП применяет какую-то формулу к вектору из флоатов
Ооо ну видимо вы знающий человек. Тогда вопрос. Задача: нарисовать точки в двумерной системе. (Далее график или спектр) Есть два вектора vectorX и vectorY. Два этих вектора вместе представляют из себя набор точек. Значения vectorX упорядочены и идут с шагом N Значения vectorX почти никогда не меняются. Значения vectorY приходят новые каждые 23 миллисекунды. что бы найти перевести точку из обычной системы координат в пиксельную нужно применить формулу: pixelX = round((vectorX[i] - offsetX)*scaleX) pixelY = round((vectorY[i] - offsetY)*scaleY) Так как масштаб спектра может меняться, то в один столбец изображения может попадать много точек. Хотелось бы нарисовать самую высокую из точек попавших в столбец изображения. Если vectorX почти никогда не меняется, под индексом vectorX лежит соответсвующий ему элемент vectorY. То Можно заранее создать массив таблицу типа int(далее будем называть vectorTransform), размером с вектор Y. И тогда мы сможем пройтись vectorY и каждому vectorY[i] будет соответствовать номер пикселя лежащий vectorTransform[i]. Дальше применяем формулу x ^ ((x ^ y) & -(x < y)). Суть в чём, нам не нужно будет с каждым обновлением vectorY расчитывать какой элемент vectorY в каком столбце изображения должен лежат. У нас уже будет массив таблица в которой будет лежать номер столбца изображения. Сообственно вопрос, такая вот заранее просчитанная таблица даст прирост в скорости или же round((vectorX[i] - offsetX)*scaleX) каждый раз делать тоже самое даст по скорости?
Они и лягут, если не мешать компилятору.
Обсуждают сегодня