5538c34ddf23acd10676133f08676424.ppt
- Количество слайдов: 24
Компилятор Intel C++ и анализатор кода VTune™ для микроархитектуры Intel XScale® Дмитрий Тараканов Инженер по программному обеспечению ISDEF 2004, 17 сентября 2004 • •
Рынок для процессоров Intel XScale® Bulverde Applications Processors Performance Bulverde Applications Processors Premium Phones PDAs Value Budget • 2 •
Инструменты для микроархитектуры Intel XScale® Разработка приложений: – Microsoft e. Mebedded Visual C++ 3. 0* или 4. 0 с PPC* или Smartphone* SDK – Intel XScale® Technology Tool chain Улучшение производительности: – Компиляторы с поддержкой Intel XScale® – Intel® Integrated Performance Primitives (Intel® IPP) – Intel® Graphics Performance Primitives (Intel® GPP) Анализ/настройка производительности: – Intel® VTune™ Performance Analyzer для микроархитектуры Intel Xscale® Host – Windows 2000/XP • 3 •
Эволюция набора инструкций ARM* v 6 ARM 11 Micro-Architecture v 5 TEJ ARM 1026 EJ-S ARM 926 EJ-S ARM 1020 E ARM 7 EJ-S ARM 946 E-S ARM 966 E-S ARM 922 T ARM 920 T v 5 TE v 4 T ARM 940 T ARM 720 T ARM 7 TDMI-S SA 110 v 4 Architecture Name I T: Thumb Instructions E: Enhanced DSP Intel XScale® architecture == v 5 TE * Other names and brands may be claimed as the property of others. • 4 •
Intel Xscale® Architecture Performance Features 7 stage pipe Branch Target Buffer Write Buffer Fill Buffer Pend Buffer Large Caches Performance Monitoring i. MPT (CP 0) Intel® Wireless MMX™ technology (CP 0, 1) • 5 •
7 stage pipeline Branch Target Buffer Instruction Fetch 1 Instruction Cache Instruction Fetch 2 Instruction Decode Bypasses Multiply & Accumulator 0 -3 MAC Writeback Register file & Barrel shift Arithmetic Execution State Execution Integer Writeback • 6 • Bypass Data Access 1 Data Access 2 Data Writeback Data Cache
Organization of PXA 255 Data Cache 32 K Data cache 32 bytes per cache line 32 sets/32 ways 32 byte aligned Size affects scalability of App Round Robin Replacement Optimization Tip: Multiple threads can trash each others use of the cache • 7 •
XScale vs. IA 32 – What’s different? Feature Pentium(r) 4 Processor (Prescott) XScale (Bulverde) Architecture 25+ stage OOO 7 stage in-order Frequency 3. 2 GHz 400 MHz (520 MHz) L 1 Data Cache 8 KByte (16 KByte) 32 KByte+2 KB L 1 Instruction Cache 12 k uops 32 KByte L 1 Cache Control prefetch, lock, line flush L 2 Cache 512 KByte (1 MByte) - BTB control - lock, flush SIMD instructions MMX, SSE 2 (PNI) 5 MPT (43 Wireless MMX) • 8 •
Intel® Media Processing Technology Multiply/accumulate with 40 Bit Result 31 16 15 * 31 39 0 accum 16 15 + 0 * + 0 39 0 accum Additional instructions to mix and match top and bottom halfs of input registers Implemented in Coprocessor 0 Useful for Video and Audio Algorithms • 9 •
Технология Intel® Wireless MMX™ 16 SIMD registers WADDBUSNE wr 0, wr 1, wr 2 Unprecedented Multimedia Performance on Intel® XScale™ Architecture • 10 •
Компилятор С++ для архитектуры Intel XScale® Пакет включает: – Intel® C++ Compiler 1. 2. 8 – Intel® Assembler 1. 2. 8 Поддерживаемые платформы: – – – Microsoft* e. Mbedded Visual Tools*, version 3. 0 Microsoft* e. Mbedded Visual C++*, version 4. 0 (Service Pack 1 or Service Pack 2 required) Platform Builder for Microsoft* Windows* CE, version 3. 0 Platform Builder for Microsoft* Windows* CE. NET, version 4. 1 Platform Builder for Microsoft* Windows* CE. NET, version 4. 2 SDKs – – Pocket PC 2002 Pocket PC 2003 Smartphone 2002 Smartphone 2003 • 11 •
Компилятор С++ для архитектуры Intel XScale® Устанавливается в Microsoft EVC 3. 0/4. 2 IDE в качестве plug-in’а Большинство опций компилятора такие же как у компилятора Microsoft* В большинстве случаев производит код с лучшей производительностью Максимальная эффективность достигается при использовании Intel Performance Libraries (IPP, GPP) • 12 •
Использование компилятора Intel C++ После установки появляются три новых пункта в меню Tools Опции компилятора позволяют выбрать дополнительные опции оптимизации. Включает и выключает использование компилятора Intel C++ Документация об опциях и других возможностях компилятора. • 13 •
Опции оптимизации /Od – нет оптимизации /O 1 – оптимизация по скорости с сохранением малого размера файла приложения /O 2 – оптимизация по скорости /O 3 – включает высокоуровневую оптимизацию /Ox – максимальная оптимизация (большой размер файла приложения) /Qip, /Qipo – межпроцедурная оптимизация • 14 •
Тесты производительности Application Bottleneck MS 3. 0 MS 4. 0 Intel Compiler Prime Memory 7. 9909 7. 2283 7. 3918 Mortgage Calculator Floating point arithmetic 11. 5017 11. 5008 2. 8332 Gapi. Draw (squares) Memory writes 1. 6394 1. 5969 1. 507 Digital Persona CPU intensive . 8857 . 7493 . 6799 Speechworks CPU intensive No data 3. 1244 2. 80245 Цифры - время в секундах • 15 •
VTune™ – инструмент статистического анализа производительности для микроархитектуры Intel XScale® Делает выборки на основе фиксированного интервала времени, определяет какие функции (участки кода) наиболее требовательны к ресурсам (Time Based Sampling) Делает выборки на основе фиксированного количества событий. (Event Based Sampling) Использует PMU, который есть только в процессорах Intel® • 16 •
Поддержка мониторинга производительности Встроенные счетчики собирают статистику производительности. Список счетчиков производительности: Event Number Event Definition 0 x 0 Instruction cache-miss 0 x 7 Instruction executed 0 x 1 Instruction cache cannot deliver instruction 0 x 8 Stall due to D-Cache buffer full (every cycle condition is present) 0 x 2 Data dependency stall 0 x 9 Contiguous seq. of event 0 x 8 0 x 3 Instruction TLB miss 0 xa Data cache access 0 x 4 Data TLB miss 0 xb Data cache-miss 0 x 5 Branch instr. executed 0 xc Data cache write-back 0 x 6 Branch mispredicted 0 xd Software changed the PC Архитектурная поддержка анализа “узких мест” производительности Вашего приложения • 17 •
Преимущества VTune™ Измерение производительности без инструментации – Требуется только отладочная информация Показывает на уровне исходного кода (на уровне операторов языка программирования) где расположены ‘горячие точки’ Дает рекомендации по улучшению производительности кода • 18 •
Подготовка кода для анализа В меню Project -> Settings: Выберите закладку С/C++ В выпадающем меню Debug Info, выберите Program Database • 19 •
Подготовка кода для анализа В меню Project -> Settings: Выберите закладку Link Убедитесь что выбрана опция Generate debug info • 20 •
Как работает VTune™ Data Collector используется для установки интервалов сэмплинга в PMU и запуска приложения Приложение выполняется, прерывается PMU для сбора данных ISR собирает историю сэмплинга, информацию о модуле, процессе, функции Data Collector Application Under Test w/ Debug Info Sampling ISR (BSP) Результат работы: Sample File (. rsf) (PMU interrupt sample Data – Module File (. rmf) (list of modules and Locations Для платформ Win. CE требуется специальный build операционной системы • 21 •
Top 5 полезных советов 1. 2. 3. 4. 5. Оптимизируйте использование кэша! – Кэш-промах стоит ~150 циклов – Используйте preload() – Oбъединяйте writes, разъединяйте reads – Advanced: mini cache, XScale позволяет “замораживать” данные в кэше “Ручная” оптимизация критических мест – Используйте DSP-расширения, i. MPT, WMMX – Оптимизируйте ветвления – Оптимизируйте циклы Используйте компилятор Intel! – Лучшиe run-time библиотеки – векторизация и оптимизация – Помогите компилятору! Используйте VTune для анализа производительности и поиска “узких мест”! Используйте оптимизированные IPP/GPP библиотеки 0. Исправьте ошибки перед тем как начинать оптимизацию • 22 •
Итоги Архитектура ARM*: простой и мощный 32 Bit RISC CPU с интегрированным L 1 cache и модулем управления памятью Архитектура Intel Xscale® является надстройкой над архитектурой ARM* – Обеспечивается лучшая производительность – Добавляются новые возможности для улучшения производительности программ Разработка программ для Intel Xscale®: подобна разработке программ для IA 32 – MS Embedded Visual Studio*, Intel® Compiler, Intel® VTune™ performance analyzer • 23 •
Спасибо за внимание! • 24 •


