Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Sacando el maximo de tus
Apps con IA

Marcelo Lorenzati
ASDC - Argentina Software Design Center
Agenda

Breve historia, evolución y el rol de Intel en la tecnología
Información, recursos y contactos
Optimizaciones, con...
Historia

Intel: Empresa fabricante de semiconductores creada en 1968, creadora del primer
procesador (4004)
Evolución

Evolución de los procesadores Intel, desde miles a billones de transistores en un
solo chip, en 42 años.
http:/...
Evolución

http://www.intel.com/support/galileo/index.htm
Evolución

Evolución de los equipos con Intel Inside hacia la movilidad
Contribución al software abierto

https://01.org/projects
Contacto con los desarrolladores

Zona para desarrolladores Intel®
http://software.intel.com/es-es/
Foro de Preguntas del ...
Optimizaciones, conceptos generales

1. Primero claridad antes que eficiencia
2. Estas pensando en optimizar? Espera!
3. P...
Concurrencia y paralelismo

Dos tareas en un procesador
de doble núcleo vs uno de
núcleo único.

Múltiples tareas en un
pr...
Concurrencia y paralelismo

Sincronización de datos
entre tareas y procesos

Cuando no se usa paralelismo? Cuando el costo...
0-15m

15-30m

30-45m

45-60m

0-15

15-30

30-45

45-60

Paralelismo en datos

1h de video
Paralelismo en tareas

Lógica

Física

Música

Hilo principal – Orquestador
y parte visual
Optimizaciones, HTML5
• Webworkers
var worker = new Worker('task.js');
worker.postMessage(); //Ejecuta el worker por separ...
Optimización C/C++ - Librerías
Librerias de soporte de C++
Boost (http://www.boost.org/)
Frameworks de desarrollo de aplic...
Optimización C/C++ - Compilación y enlazado
Algunos parámetros de compilación: en GCC (GNU C Compiler) o en ICC( Intel C C...
Optimización C/C++ - Compilación y enlazado
Uso de librerías optimizadas
Gcc –lm
• Math (libm) ( acos, atan, ceil, log, po...
SIMD: Single Instruction, Multiple Data
• Vector mode

• Scalar mode

– with AVX (or SSE) instructions
– one instruction c...
Herramientas de optimización C/C++
Intel® Parallel Studio XE
Fase

Herramienta

Función

Beneficio

Intel®
Parallel
Adviso...
Intel® Parallel Advisor – Overview
Design Phase

Discover, Analyze, Check, Add Parallelism
Analyzes the executing serial p...
Intel Composer XE - Overview
Compilers, Performance Libraries, Debugging Tools
• Leading Performance Optimizing Compilers
...
Intel® Inspector XE - Dynamic Analysis
Detects memory and threading errors
• Memory errors
•
•
•
•
•

Invalid Memory Acces...
Intel® VTune™ Amplifier XE
Performance Profiler
Where is my application…
Spending Time?

Wasting Time?

Waiting Too Long?
...
Optimizaciones, conceptos avanzados

Manual de optimizaciones
http://www.intel.com/content/www/us/en/architecture-and-tech...
Consejos
• >60% de las classmates son dual boot
– Piensa en multiplataforma

• No siempre habrá conectividad constante de ...
Presentación y
Links
Preguntas?

Copyright© 2013, Intel Corporation. All rights reserved.
*Other brands and names are the ...
Upcoming SlideShare
Loading in …5
×

Intel

334 views

Published on

  • Be the first to comment

  • Be the first to like this

Intel

  1. 1. Sacando el maximo de tus Apps con IA Marcelo Lorenzati ASDC - Argentina Software Design Center
  2. 2. Agenda Breve historia, evolución y el rol de Intel en la tecnología Información, recursos y contactos Optimizaciones, consejos y buenas prácticas de desarrollo Herramientas Preguntas
  3. 3. Historia Intel: Empresa fabricante de semiconductores creada en 1968, creadora del primer procesador (4004)
  4. 4. Evolución Evolución de los procesadores Intel, desde miles a billones de transistores en un solo chip, en 42 años. http://www.intel.com/content/www/us/en/history/history-intel-chips-timeline-poster.html
  5. 5. Evolución http://www.intel.com/support/galileo/index.htm
  6. 6. Evolución Evolución de los equipos con Intel Inside hacia la movilidad
  7. 7. Contribución al software abierto https://01.org/projects
  8. 8. Contacto con los desarrolladores Zona para desarrolladores Intel® http://software.intel.com/es-es/ Foro de Preguntas del Hackaton http://software.intel.com/es-es/node/472278
  9. 9. Optimizaciones, conceptos generales 1. Primero claridad antes que eficiencia 2. Estas pensando en optimizar? Espera! 3. Piensa en paralelismo 1. En los datos 2. En las tareas 3. En las instrucciones (acá te ayuda el compilador y el micro) 4. Aprovecha herramientas y librerías
  10. 10. Concurrencia y paralelismo Dos tareas en un procesador de doble núcleo vs uno de núcleo único. Múltiples tareas en un procesador de doble núcleo Se usa paralelismo no solo para performance, sino como un método se separar dominios de un problema.
  11. 11. Concurrencia y paralelismo Sincronización de datos entre tareas y procesos Cuando no se usa paralelismo? Cuando el costo de implementar es mayor que el beneficio de provee. Cual es ese costo? La sincronización y protección de los datos compartidos http://software.intel.com/sites/default/files/m/d/4/1/d/8/Gillespie-0053-AAD_Gustafson-Amdahl_v1__2_.rh.final.pdf
  12. 12. 0-15m 15-30m 30-45m 45-60m 0-15 15-30 30-45 45-60 Paralelismo en datos 1h de video
  13. 13. Paralelismo en tareas Lógica Física Música Hilo principal – Orquestador y parte visual
  14. 14. Optimizaciones, HTML5 • Webworkers var worker = new Worker('task.js'); worker.postMessage(); //Ejecuta el worker por separado • Animaciones CSS3 / HTML5 (la mayoría aceleradas por HW) <style> div { width:100px; transition:width 2s; } div:hover { width:300px; } </style> • Librerias: – – jquery, jqueryUi, bootstrap (client side scripting) cocos2D-HTML5, CraftyJs (gaming) http://html5test.com/ http://www.html5rocks.com/en/tutorials/speed/html5/ http://www.html5rocks.com/en/tutorials/canvas/performance/
  15. 15. Optimización C/C++ - Librerías Librerias de soporte de C++ Boost (http://www.boost.org/) Frameworks de desarrollo de aplicaciones: Qt (http://qt-project.org/) GTK (http://www.gtk.org/) WxWidgets (http:// www.wxwidgets.org/) Webserver embebido Mongoose (https://code.google.com/p/mongoose/) Procesamiento de imágenes OpenCV (http:// opencv.org) Persistencia local sqlite3 (http://www.sqlite.org/) Imágenes 3D Ogre (http://www.ogre3d.org)
  16. 16. Optimización C/C++ - Compilación y enlazado Algunos parámetros de compilación: en GCC (GNU C Compiler) o en ICC( Intel C Compiler) -O0 sin optimización -O1 Optimizaciones escalares (por defecto) -O2 Vectorización, transformación de bucles, inlining -O3 La mas agresiva, se debe probar incluye cache blocking, loop fusion, loop interchange Optimización inter procedimiento: Analisis entre funciones sus fuentes gcc –flto , icc -ipo • Funciones inline • Análisis de alineación • Desambiguación • Propagación de constantes • Disposición y transformación de datos
  17. 17. Optimización C/C++ - Compilación y enlazado Uso de librerías optimizadas Gcc –lm • Math (libm) ( acos, atan, ceil, log, pow, sin, etc) • Math Kernel Library (MKL) – – – – Vectores y matrices Algebra lineal FFT Librería estadística (números aleatorios) Manejo de punto flotante • En gcc esta apagado por defecto, se habilita con –ffast-math • En icc se habilita con –fp-model (fast / precise / strict)
  18. 18. SIMD: Single Instruction, Multiple Data • Vector mode • Scalar mode – with AVX (or SSE) instructions – one instruction can produce multiple results – one instruction produces one result – E.g. addss, (addsd) – E.g. addps, (addpd) SSE X X x7 x6 x5 Y x1 x0 y7 y6 y5 y3 y4 y2 y1 y0 = = X+Y x2 + + Y x3 x4 X+Y x7+y7 x6+y6 x5+y5 x4+y4 x3+y3 x2+y2 x1+y1 x0+y0
  19. 19. Herramientas de optimización C/C++ Intel® Parallel Studio XE Fase Herramienta Función Beneficio Intel® Parallel Advisor for C++ Windows Asistente de diseño con hilos Codificación y depuración Intel® Composer XE Compiladores de C/C++ y Fortran con librerías optimizadas • Intel® Integrated Performance Primitives • Intel® Math Kernel Library • Intel® Threading Building Blocks • Intel@ Cilk™ Plus • Permite alcanzar el rendimiento y escalabilidad deseada aprovechando beneficios multi-núcleo Verificación Intel® Inspector XE Análisis dinámico de memoria e hilos para mejorar la calidad del código Análisis estático de código para mejorar la calidad y confianza • Incrementa la productividad, calidad y baja costos. • Encuentra defectos en memoria, hilos y bugs antes de que sucedan. Tune Intel® VTune™ Amplifier XE Generado de perfil para optimización de aplicación y escalabilidad • Elimina conjeturas, salva tiempo y hace fácil encontrar cuellos de botella del código Diseño • Simplifica, desmistifica y acelera el diseño de aplicaciones con multihilo http://software.intel.com/en-us/articles/intel-software-evaluation-center/
  20. 20. Intel® Parallel Advisor – Overview Design Phase Discover, Analyze, Check, Add Parallelism Analyzes the executing serial program as developers work through the methodology Survey Target Focuses effort where it will pay off and targets coarse-grain parallelism Annotate Sources Inserts annotations to sources to describe parallel experiments Check Suitability Evaluates performance impact and implication of the parallel experiments Check Correctness Finds and resolves conflicts before parallelism is applied. Reduces debugging problems by defining safe and solid paths to parallelism Models Intel® Threading Building Blocks, Intel® Cilk™ Plus, Microsoft*PPL, Windows* Threads, OpenMP* 20
  21. 21. Intel Composer XE - Overview Compilers, Performance Libraries, Debugging Tools • Leading Performance Optimizing Compilers • • • • • Intel® C++ Composer XE 2011 Intel® C++ Compiler XE 12.1 Intel® Threading Building Blocks Intel® Cilk™ Plus Intel® Math Kernel Library Intel® Integrated Performance Primitives Intel® Fortran Composer XE 2011 • • • Intel® Fortran Compiler XE 12.1 Intel® Math Kernel Library Intel® Integrated Performance Primitives - Intel C++ and Fortran Compilers - Intel® Integrated Performance Primitives, Intel® Math Kernel Library libraries - Profile-Guided Optimization (PGO) - Interprocedural Optimization (IPO) - Guided-auto parallelism (GAP) - High-Performance Parallel Optimizer (HPO) - SIMD Pragma - C++ Array Notations • Standard Support - OpenMP* - C++0x - Support for key parts of the latest Fortran and C++ standards, Visual Studio* 2010 Shell for Visual Fortran* • Compatibility – Mix and Match - Binary and source compatible with Microsoft* Visual Studio* C++ and GCC* Windows*, Linux*, Mac OS* 32-bit & 64-bit multicore processor support Intel® AVX support Supported Environments Microsoft Visual Studio* 2005, 2008, 2010 Eclipse CDT and Mac XCode* 10/7/2013
  22. 22. Intel® Inspector XE - Dynamic Analysis Detects memory and threading errors • Memory errors • • • • • Invalid Memory Accesses Memory Leaks Uninitialized Memory Accesses Improper usage of Memory API(s) Resource Leaks (Windows only) • Threading Errors • Data Races • Deadlock/Lock Hierarchy Violation • Cross Stack Memory Accesses  No special compiles (dynamic binary instrumentation) Analyze DLLs (source optional)   Runs threaded  32 and 64-bit OSs (e.g., Windows 7, RHEL 6)  Easy user interface
  23. 23. Intel® VTune™ Amplifier XE Performance Profiler Where is my application… Spending Time? Wasting Time? Waiting Too Long? • Focus tuning on functions taking time • See call stacks • See time on source • See cache misses on your source • See functions sorted by # of cache misses • See locks by wait time • Red/Green for CPU utilization during wait • Windows & Linux • Low overhead • No special recompiles Advanced Profiling For Scalable Multicore Performance
  24. 24. Optimizaciones, conceptos avanzados Manual de optimizaciones http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architecturesoptimization-manual.html
  25. 25. Consejos • >60% de las classmates son dual boot – Piensa en multiplataforma • No siempre habrá conectividad constante de internet – Modos offline, persistencia, etc. • Tamaño de pantalla de 10.1” – Diseña iconos y fuentes grandes – No sobrecargues las pantallas con detalles, sepáralas • Piensa en la batería – Optimizar el procesamiento – Usa sólo lo necesario
  26. 26. Presentación y Links Preguntas? Copyright© 2013, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners

×