{"id":3545,"date":"2023-04-28T15:33:10","date_gmt":"2023-04-28T13:33:10","guid":{"rendered":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/2023\/04\/28\/supercarga-con-aceleracion-de-gpu\/"},"modified":"2023-04-28T15:33:10","modified_gmt":"2023-04-28T13:33:10","slug":"supercarga-con-aceleracion-de-gpu","status":"publish","type":"post","link":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/blog-novedades\/supercarga-con-aceleracion-de-gpu\/","title":{"rendered":"Supercarga con aceleraci\u00f3n de GPU: El uso de la din\u00e1mica de vuelo de Quadrotor"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-3544\" src=\"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-content\/uploads\/2023\/04\/Coreavi.jpg\" alt=\"Coreavi\" style=\"display: block; margin-left: auto; margin-right: auto;\" width=\"300\" height=\"200\" \/><\/p>\n<p style=\"text-align: justify;\">La <strong>aceleraci\u00f3n por hardware permite que el software se ejecute m\u00e1s r\u00e1pido<\/strong>. \u00bfM\u00e1s r\u00e1pido que qu\u00e9? Pues m\u00e1s r\u00e1pido que alg\u00fan benchmark. T\u00e9cnicamente, la aceleraci\u00f3n por hardware puede conseguirse simplemente actualizando la CPU en el sistema por una versi\u00f3n m\u00e1s nueva\/r\u00e1pida. Pero esto no es realmente a lo que nos referimos cuando hablamos de aceleraci\u00f3n por hardware. En cambio, a lo que nos referimos es escribir software que aproveche expl\u00edcitamente las caracter\u00edsticas espec\u00edficas del hardware para acelerar la ejecuci\u00f3n del software. Los procesadores modernos son predominantemente multin\u00facleo. La disponibilidad de m\u00faltiples n\u00facleos de ejecuci\u00f3n significa que se espera que los desarrolladores de software escriban sus algoritmos de tal manera que el rendimiento de la ejecuci\u00f3n se maximice paralelizando el trabajo en tantos n\u00facleos como sea posible, en lugar de confiar en el potente rendimiento de un \u00fanico hilo del procesador.<\/p>\n<p style=\"text-align: justify;\">Desde CoreAVI cuentan una CPU multin\u00facleo y escriben su software para aprovechar cada uno de los n\u00facleos que la CPU ofrece. Desde el punto de vista de la aceleraci\u00f3n, se puede hacer todav\u00eda m\u00e1s. La CPU est\u00e1 ejecutando el valioso algoritmo de software, pero tambi\u00e9n est\u00e1 ejecutando todo lo dem\u00e1s en el sistema, incluyendo el sistema operativo. Una verdadera medida de la aceleraci\u00f3n ser\u00eda trasladar todo lo posible de la CPU a un hardware dedicado. Esta fue la intuici\u00f3n que dio origen a la industria inform\u00e1tica actual. La explosi\u00f3n de la investigaci\u00f3n en aprendizaje autom\u00e1tico (ML, siglas en ingl\u00e9s) e inteligencia artificial (IA) que vemos ahora no se debe a teor\u00edas inform\u00e1ticas fundamentalmente nuevas. De hecho, la mayor parte de las matem\u00e1ticas implicadas en estos algoritmos tienen d\u00e9cadas de antig\u00fcedad. Lo verdaderamente revolucionario en IA y el ML hoy en d\u00eda es la constataci\u00f3n de que podemos acelerar el enorme n\u00famero de c\u00e1lculos implicados -que antes se consideraban intratables desde el punto de vista computacional- utilizando unidades de procesamiento gr\u00e1fico (GPU). Las GPU ofrecen grandes conjuntos de n\u00facleos de c\u00e1lculo. Siempre que escribamos nuestros algoritmos de forma que puedan aprovechar los n\u00facleos de la GPU para realizar nuestros c\u00e1lculos, podemos descargar gran parte de nuestros algoritmos en la GPU y dejar la CPU libre para seguir ejecutando el sistema. Esto es verdadera aceleraci\u00f3n.<\/p>\n<p style=\"text-align: justify;\">Ahora que ya sabemos c\u00f3mo es la aceleraci\u00f3n, al menos a un alto nivel, la siguiente pregunta obvia es: \u00bfpor qu\u00e9 es importante?\u00bfEs la aceleraci\u00f3n por hardware algo interesante que hay que tener o es esencial? La respuesta depende, por supuesto, del caso de uso. Si podemos permitirnos esperar a los resultados de nuestros c\u00e1lculos, entonces la aceleraci\u00f3n puede no ser tan necesaria. Pero hay muchos casos de uso en los que la velocidad de ejecuci\u00f3n es tan importante que una ejecuci\u00f3n lenta significa que el sistema es inutilizable. Estos ejemplos suelen encontrarse en sistemas que deben responder a cambios del entorno en tiempo real.<\/p>\n<p style=\"text-align: justify;\">El prop\u00f3sito de este documento es analizar los c\u00e1lculos que intervienen en el modelado de la din\u00e1mica de vuelo de un Quadrotor, discutir qu\u00e9 partes de los c\u00e1lculos son candidatas para la aceleraci\u00f3n en la GPU y demostrar la importancia del determinismo para el tiempo de ejecuci\u00f3n de estos c\u00e1lculos.<\/p>\n<p style=\"text-align: justify;\">Si quieres conocer en mayor profundidad este caso, entra aqu\u00ed y lee el <a href=\"https:\/\/coreavi.com\/wp-content\/uploads\/CoreAVI-White-Paper-Quadrotor-Dynamics-and-Acceleration.pdf\" target=\"_blank\" rel=\"noopener\">art\u00edculo completo<\/a>.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La aceleraci\u00f3n por hardware permite que el software se ejecute m\u00e1s r\u00e1pido. \u00bfM\u00e1s r\u00e1pido que qu\u00e9? Pues m\u00e1s r\u00e1pido que alg\u00fan benchmark. T\u00e9cnicamente, la aceleraci\u00f3n por hardware puede conseguirse simplemente actualizando la CPU en el sistema por una versi\u00f3n m\u00e1s nueva\/r\u00e1pida. Pero esto no es realmente a lo que nos referimos cuando hablamos de aceleraci\u00f3n [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3544,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[15],"tags":[],"class_list":["post-3545","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-novedades"],"_links":{"self":[{"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/posts\/3545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/comments?post=3545"}],"version-history":[{"count":0,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/posts\/3545\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/media\/3544"}],"wp:attachment":[{"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/media?parent=3545"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/categories?post=3545"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/tags?post=3545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}