2012-06-16 5 views
2

Я получаю данные с камеры через интерфейс Giga Bit Ethernet. Поскольку данные очень малы, я думаю о том, чтобы поместить это прямо в кеш-память L1 (вместо DRAM), так что обработка выполняется быстро.C/C++: кэширование данных камеры

Как это сделать? Есть ли какая-либо директива для этого?

информации Платформа
Windows 7, Intel Core2Duo, Visual Studio 2010, C/C++, OpenCV.

+0

Какой сокет является вашей карточкой giga? – starbolin

ответ

0

Gcc будет генерировать инструкции предварительной выборки данных для данных массива для -O1 -O2 -O3. Это было переработано довольно недавно. Поэтому маловероятно, что флаг _DATAPREFETCH8 будет предлагать любое улучшение по сравнению с стандартными уровнями оптимизации.

Что касается обхода памяти, как данные будут назначены тег кеша? Теги кэша выдаются при извлечении памяти, и процессор находит данные в кеше через свой тег кэша.

DuoCores делится тегом-шиной, и я считаю, что графические процессоры могут повесить бирку, поэтому мы могли бы представить себе контроллер ввода-вывода, но я еще не нашел ссылку. Какую сокет вы используете в Giga?

(старый список тегов для различных CPU семей.) [Http://gcc.gnu.org/projects/prefetch.html]

" -fprefetch-loop-arrays 
If supported by the target machine, generate instructions to prefetch memory to improve the performance of loops that access large arrays. 

This option may generate better or worse code; results are highly dependent on the structure of loops within the source code. "(gcc-4.7)[ http://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Optimize-Options.html#Optimize-Options ]
0

Там обыкновение быть значительное улучшение производительности в высоко- которые имеют большие кеши.

Улучшение производительности может произойти в случае, когда изображение слишком велико для полной загрузки в кеш, и много алгоритмов должны работать над одним и тем же изображением много раз. В таких случаях часть изображения загружается в кеш и алгоритм работает на нем, затем остальная часть копируется и продолжается. Такие случаи могут быть легко воспроизведены во встроенных устройствах, таких как Beagleboard, которые имеют кеш L1 на 32 КБ. В таких случаях производительность алгоритма может быть улучшена путем эффективного разбиения изображения и выполнения всех процессов на части изображения перед загрузкой следующей его части.

Смежные вопросы