Re: Умножение вектора на число.
От: Sergey A. Sablin Россия http://www.elecard.com
Дата: 02.11.04 09:47
Оценка: 1 (1)
Здравствуйте, VotVopros, Вы писали:

VV>Здравствуйте!


VV>ЗАДАЧА

VV>Пишу sw просмотра файла в некотором граф. векторном формате.
VV>Содержимое файла можно упрощенно представить как совокупность координат ломанных.

VV>При отображении на экран произвожу преобразование координат из внутренних в экранные.

VV>Преобразование имеет вид:
VV>x' = k1*x + b1
VV>y' = k2*y + b2

VV>ВОПРОС:

VV>Преобразование выполняется очень часто (к тому же в файле порядка млн. точек)
VV>Это фактически умножение вектора на число и сложение вектора с числом.
VV>Есть желание пооптимизировать функцию преобразования координат.
VV>КАК? ПОСОВЕТУЙТЕ!

VV>Была идея использовать для умножения векторов MMX инструкции.

VV>НО
VV>1) Нет желания писать на ассемблере, а библиотека Intel (подключаемый файл #include "mmintrin.h") похоже доступна только с VC 7.0.Так просто библиотеки для MMX на просторах INET я не встретил. К тому же я пока сижу на Builder, и даже , если соберусь перейти на VC, не хочется ограничивать себя последней версией VC.
VV>2) У меня массив из миллиона int, а для MMX это придётся свести к порциям по 4 short. Не факт, что выйдет выигрыш.

VV>ЧТО ВЫ СКАЖЕТЕ НАСЧЁТ ММХ?


VV>заранее Спасибо!!!


если нет возможности попользовать Intel C compiler, то тогда ручками — ММХ, SSE, SSE2. Прибыль получится очень даже ощутимая — ускорение чтения/записи из кучи, векторное умножение, сложение, вычитание, .... раскрутка циклов. Суммарно можно наскрести (в зависимости от реализации конечно ) от 2 до 10 раз совершенно реально.
Сергей.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.