{"id":3049,"date":"2020-09-16T09:04:04","date_gmt":"2020-09-16T07:04:04","guid":{"rendered":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/2020\/09\/16\/generacion-de-shaders-gpu\/"},"modified":"2020-09-16T09:04:04","modified_gmt":"2020-09-16T07:04:04","slug":"generacion-de-shaders-gpu","status":"publish","type":"post","link":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/blog-novedades\/generacion-de-shaders-gpu\/","title":{"rendered":"La nueva generaci\u00f3n de shaders GPU y librer\u00edas de computaci\u00f3n"},"content":{"rendered":"<p style=\"text-align: justify;\">La industria de la tecnolog\u00eda de gr\u00e1ficos y monitores est\u00e1 atravesando una \u00e9poca de grandes cambios, adoptando r\u00e1pidamente los nuevos gr\u00e1ficos Vulkan\u00ae. Los est\u00e1ndares abiertos actuales, como el OpenGL\u00ae y OpenCL\u00ae han servido a la industria de forma excelente durante muchos a\u00f1os, as\u00ed que \u00bf<strong>cu\u00e1l es el incentivo que ha llevado a los integradores a cambiar a Vulkan<\/strong>?<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Historia de los sistemas de gr\u00e1ficos<\/strong><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">El uso de sistemas de gr\u00e1ficos apareci\u00f3 por primera vez en los primeros a\u00f1os 90 en la estaci\u00f3n de trabajo de Silicon Graphics Workstation, empleando una librer\u00eda de gr\u00e1ficos propietarios llamada IRIS GL. IRIS GL llev\u00f3 a la creaci\u00f3n de las Librer\u00edas Gr\u00e1ficas Abiertas (OpenGL), las cuales se formalizar\u00edan en 1992. Cuando OpenGL se formaliz\u00f3, hab\u00eda&nbsp; tarjetas gr\u00e1ficas bus Est\u00e1ndares de Arquitectura de la Industria (ISA) en uso con gr\u00e1ficos VGA. Hoy en d\u00eda, los gr\u00e1ficos AMD y NVIDIA PCI Express facilitan un uso detallado y suave. La disponibilidad de muchos cores de computaci\u00f3n en modernos GPUs les permite ser utilizados para el gaming, la extracci\u00f3n de criptograf\u00edas, un profundo machine learning y muchos otros casos avanzados.&nbsp;<\/p>\n<p style=\"text-align: justify;\">Los nuevos conjuntos de chips gr\u00e1ficos son un cambio total en la fase dise\u00f1o, pero todav\u00eda soportan est\u00e1ndares OpenGL. En las industrias comerciales, las preferencias han evolucionado a favor de una tecnolog\u00eda de nueva generaci\u00f3n como Vulkan que supone un gran salto en cuanto a rendimiento. Esta adopci\u00f3n est\u00e1 ya en marcha en la industria del gaming para una nueva generaci\u00f3n de juegos como Artifact, Doom, Hitman y Quake, el cual emplea un nuevo AMC y GPUs NVIDIA. Un eventual cambio desde OpenGL, OpenCL y Computaci\u00f3n Unificada de Arquitectura de Dispositivos (CUDA) a Vulkan podr\u00eda significar el fin de una era para estas tecnolog\u00edas.&nbsp;<\/p>\n<p style=\"text-align: justify;\">Para comprender las librer\u00edas de est\u00e1ndares gr\u00e1ficos debemos, en primer lugar, examinar sus or\u00edgenes y su progresi\u00f3n.&nbsp;<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>OpenGL<\/strong><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">La evoluci\u00f3n del est\u00e1ndar OpenGL llev\u00f3 un par de a\u00f1os. La competici\u00f3n en la industria de la computaci\u00f3n forz\u00f3 el secretismo y la creaci\u00f3n de diferentes est\u00e1ndares entre elementos clave del terreno: Silicon Graphics, Sun Microsystems, IBM, y Hewlett-Packard. Al final, estos fabricantes y otros muchos acordaron participar en el Tablero de Revisi\u00f3n de la Arquitectura OpenGL (ARB), y la primera especificaci\u00f3n del primer gran OpenGL 2.0 fue lanzada en 2004. La ARB pas\u00f3 las especificaciones del control a Khronos Group, el cual es un miembro fundador sin \u00e1nimo de lucro &nbsp; del consorcio, centrado en Interfaces de Programaci\u00f3n para Aplicaciones de est\u00e1ndares abiertos libres de royalties&nbsp;<\/p>\n<p style=\"text-align: justify;\">El dise\u00f1o de OpenGL permiti\u00f3 a las aplicaciones gr\u00e1ficas emplear un amplio rango de lenguajes de programaci\u00f3n empleando lenguajes vinculantes, incluyendo \u2018C\u2019, Java y JavaScript, para acceder a las funciones de la librer\u00eda de OpenGL.&nbsp;<\/p>\n<p style=\"text-align: justify;\">OpenGL introdujo apoyo para el lenguaje shader con el objetivo de otorgar m\u00e1s control de los conductos de gr\u00e1ficos&nbsp; sin utilizar ensamblajes de lenguajes o lenguajes espec\u00edficos de hardware (lo cual constitu\u00eda un requerimiento al principio) para construir aplicaciones shader. In shader es un tipo de programa de computaci\u00f3n usado para sombrear niveles de luz, oscuridad y color en una imagen. Tambi\u00e9n existen shaders de computaci\u00f3n 2D, 3D, pixel, v\u00e9rtice y geom\u00e9tricos, lo cual es normalmente recopilado y ejecutado en un hardware gr\u00e1fico.&nbsp;<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>OpenCL y CUDA<\/strong><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">El OpenCL y el CUDA surgieron de forma diferente que OpenGL. CUDA permiti\u00f3 el uso de los cores de GPU por parte de algoritmos de procesamiento intensivo de software, y OpenCL fue destinado estrictamente a programas que pudieran ejecutar a trav\u00e9s de plataformas heterog\u00e9neas para incluir CPUs, GPUs, DSP, FPGA y otras plataformas de aceleraci\u00f3n de hardware. CUDA defini\u00f3 el t\u00e9rmino Unidas de Procesamiento Gr\u00e1fico de Prop\u00f3sito General (GPGPU), cuando los algoritmos del software pod\u00edan ser utilizados en cores GPU para desarrollar procesos intensivos, dejando los cores de las CPU libres para realizar otras tareas.&nbsp;&nbsp;<\/p>\n<p style=\"text-align: justify;\">Antes de seguir, tienes que saber que OpenCL es una estructura para programaci\u00f3n paralela sin aspectos gr\u00e1ficos, donde las aplicaciones pensadas para dispositivos CU est\u00e1n escritas en Representaci\u00f3n Intermedia Portable Est\u00e1ndar (SPIR). SPIR es un est\u00e1ndar abierto gestionado por Khronos que se aplica a OpenCL y a Vulkan, en los cuales SPIR-V est\u00e1 definido por la integraci\u00f3n de Vulkan y aspectos de OpenGL y OpenCL. El objetivo de OpenCL es convertir todos los dispositivos de computaci\u00f3n l\u00f3gicos con respecto hacia el procesador host, en el cual cada dispositivo de computaci\u00f3n haya procesado elementos con una o m\u00e1s unidades de computaci\u00f3n.<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Vulkan: la nueva generaci\u00f3n de gr\u00e1ficos y computaci\u00f3n<\/strong><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Hablar de Vulkan es hablar de la nueva generaci\u00f3n de gr\u00e1ficos y librer\u00edas de computaci\u00f3n que combina capacidades tanto de OpenGL como de OpenCL. Est\u00e1 gestionado como una librer\u00eda open source que permite a la industria desarrollar el est\u00e1ndar a trav\u00e9s de Khronos. Esto es fundamental para las industrias en las cuales la certificaci\u00f3n de seguridad sea cr\u00edtica. El Vulkan API es todo un nuevo mundo para los usuarios de OpenGL, similar a OpenCL y CUDA, y permite bajos niveles de acceso a la GU. Como resultado del impulso inherente del rendimiento, Vulkan acudi\u00f3 inicialmente a los desarrolladores de juegos; no obstante, Khronos Group est\u00e1 en proceso de definir librer\u00edas de seguridad cr\u00edtica Vulkan que ya han llamado la atenci\u00f3n de las industrias aeroespaciales, automovil\u00edsticas y de transporte, en las cuales OpenGL SC s empleado y en las que se requiere certificaci\u00f3n.&nbsp;<\/p>\n<p style=\"text-align: justify;\">Los componentes clave de Vulkan son las unidades de ejecuci\u00f3n, las colas de trabajo, los buffers de comando, los canales, subgrupos, buffers de memoria, y el dispositivo Vulkan (o VkDevice), al cual se pueden aplicar todos los comandos.&nbsp;<\/p>\n<p style=\"text-align: justify;\">La diferencia m\u00e1s importante entre OpenGL\/Open CL y Vulkan es que Vulkan abre el mundo de los shaders y la computaci\u00f3n GPGPU. La computaci\u00f3n de shaders permite la creaci\u00f3n de gr\u00e1ficos utilizando directamente el GPU, mientras que OpenGL utiliza el procesador host para crear canales de gr\u00e1ficos antes de mostrarlos. Esto significa que Vulkan est\u00e1 a un nivel m\u00e1s de velocidad que OpenGL, ya que reduce de forma dram\u00e1tica el procesamiento host en los sistemas gr\u00e1ficos, lo cual se traduce en una reducci\u00f3n de la carga CPU host y mejora la temperatura de acci\u00f3n.&nbsp;<\/p>\n<p style=\"text-align: justify;\">Si quieres saber m\u00e1s sobre esta evoluci\u00f3n y su estado actual, no te pierdas este <a href=\"https:\/\/coreavi.com\/wp-content\/uploads\/CoreAVI_WhitePaper_GPU-Compute.pdf\" target=\"_blank\" rel=\"noopener\">whitepaper de CoreAvi<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-3048\" src=\"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-content\/uploads\/2020\/09\/GPU_spetiembre_20.JPG\" width=\"260\" height=\"140\" alt=\"GPU spetiembre 20\" style=\"display: block; margin-left: auto; margin-right: auto;\" srcset=\"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-content\/uploads\/2020\/09\/GPU_spetiembre_20.JPG 515w, https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-content\/uploads\/2020\/09\/GPU_spetiembre_20-300x162.jpg 300w, https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-content\/uploads\/2020\/09\/GPU_spetiembre_20-480x259.jpg 480w\" sizes=\"auto, (max-width: 260px) 100vw, 260px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La industria de la tecnolog\u00eda de gr\u00e1ficos y monitores est\u00e1 atravesando una \u00e9poca de grandes cambios, adoptando r\u00e1pidamente los nuevos gr\u00e1ficos Vulkan\u00ae. Los est\u00e1ndares abiertos actuales, como el OpenGL\u00ae y OpenCL\u00ae han servido a la industria de forma excelente durante muchos a\u00f1os, as\u00ed que \u00bfcu\u00e1l es el incentivo que ha llevado a los integradores a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3048,"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-3049","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\/3049","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=3049"}],"version-history":[{"count":0,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/posts\/3049\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/media\/3048"}],"wp:attachment":[{"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/media?parent=3049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/categories?post=3049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.donalba.com\/OrquestaMedia2023Donalba\/wp-json\/wp\/v2\/tags?post=3049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}