{"id":2416,"date":"2019-02-09T09:28:11","date_gmt":"2019-02-09T14:28:11","guid":{"rendered":"http:\/\/blog.hostdime.com.pe\/?p=2416"},"modified":"2019-02-12T18:16:10","modified_gmt":"2019-02-12T23:16:10","slug":"historia-e-implementaciones-de-la-computacion-de-proposito-general-en-unidades-de-procesamiento-de-graficos","status":"publish","type":"post","link":"https:\/\/www.hostdime.com.pe\/blog\/historia-e-implementaciones-de-la-computacion-de-proposito-general-en-unidades-de-procesamiento-de-graficos\/","title":{"rendered":"Historia e implementaciones de la Computaci\u00f3n de prop\u00f3sito general en unidades de procesamiento de gr\u00e1ficos"},"content":{"rendered":"<div id=\"attachment_2432\" style=\"width: 610px\" class=\"wp-caption alignleft\"><a href=\"https:\/\/www.hostdime.com.pe\/blog\/historia-e-implementaciones-de-la-computacion-de-proposito-general-en-unidades-de-procesamiento-de-graficos\/juego-de-la-vida-de-conway-blog-hostdime\/\" rel=\"attachment wp-att-2432\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2432\" class=\"wp-image-2432\" src=\"https:\/\/www.hostdime.com.pe\/blog\/wp-content\/uploads\/2019\/02\/Juego-de-la-vida-de-Conway-Blog-HostDime.jpg\" alt=\"Juego de la vida de Conway-Blog HostDime (Tomado de internet)\" width=\"600\" height=\"338\" \/><\/a><p id=\"caption-attachment-2432\" class=\"wp-caption-text\">(Tomado de internet)<\/p><\/div>\n<p style=\"text-align: justify;\">Historia e implementaciones de la Computaci\u00f3n de prop\u00f3sito general en unidades de procesamiento de gr\u00e1ficos. Vamos a continuar el discurso empezado en nuestro anterior post titulado <a href=\"https:\/\/www.hostdime.com.pe\/blog\/que-es-la-computacion-gpu-definicion-concepto\/\" target=\"_blank\" rel=\"noopener\">Qu\u00e9 es la Computaci\u00f3n GPU, definici\u00f3n, concepto.<\/a><!--more-->En principio, cualquier funci\u00f3n booleana arbitraria, incluidas las de suma, multiplicaci\u00f3n y otras funciones matem\u00e1ticas, se puede construir a partir de un conjunto funcionalmente completo de operadores l\u00f3gicos. En 1987, el <strong>juego de la vida de Conway<\/strong> se convirti\u00f3 en uno de los primeros ejemplos de computaci\u00f3n de prop\u00f3sito general que utiliza un procesador de flujo temprano llamado blitter para invocar una secuencia especial de operaciones l\u00f3gicas en vectores de bits.<\/p>\n<p style=\"text-align: justify;\">La computaci\u00f3n de prop\u00f3sito general en las GPU se hizo m\u00e1s pr\u00e1ctica y popular despu\u00e9s de aproximadamente 2001, con la llegada de los sombreadores programables y el soporte de punto flotante en los procesadores gr\u00e1ficos. En particular, los problemas que involucran matrices y\/o vectores, especialmente los vectores de dos, tres o cuatro dimensiones, fueron f\u00e1ciles de traducir a una GPU, que act\u00faa con velocidad y soporte nativos en esos tipos.<\/p>\n<div id=\"attachment_2431\" style=\"width: 610px\" class=\"wp-caption alignright\"><a href=\"https:\/\/www.hostdime.com.pe\/blog\/historia-e-implementaciones-de-la-computacion-de-proposito-general-en-unidades-de-procesamiento-de-graficos\/algoritmo-factorizacion-lu-blog-hostdime\/\" rel=\"attachment wp-att-2431\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-2431\" class=\"wp-image-2431\" src=\"https:\/\/www.hostdime.com.pe\/blog\/wp-content\/uploads\/2019\/02\/Algoritmo-Factorizacio\u0301n-LU-Blog-HostDime.jpg\" alt=\"Algoritmo-Factorizacio\u0301n-LU-Blog HostDime (Tomado de internet)\" width=\"600\" height=\"450\" \/><\/a><p id=\"caption-attachment-2431\" class=\"wp-caption-text\">(Tomado de internet)<\/p><\/div>\n<p style=\"text-align: justify;\">Los experimentos de la comunidad de computaci\u00f3n cient\u00edfica con el nuevo hardware comenzaron con una rutina de multiplicaci\u00f3n de matrices (2001); Uno de los primeros programas cient\u00edficos comunes que se ejecutaron m\u00e1s r\u00e1pido en las GPU que las CPU fue una implementaci\u00f3n de factorizaci\u00f3n LU (2005).<\/p>\n<p style=\"text-align: justify;\">Estos primeros esfuerzos para usar GPU como procesadores de prop\u00f3sito general requirieron reformular los problemas computacionales en t\u00e9rminos de primitivas de gr\u00e1ficos, como lo soportan las dos API principales para procesadores de gr\u00e1ficos, OpenGL y DirectX. Esta engorrosa traducci\u00f3n se obvi\u00f3 con la llegada de los lenguajes de programaci\u00f3n de prop\u00f3sito general y las API como Sh \/ RapidMind, Brook y Accelerator.<\/p>\n<p style=\"text-align: justify;\">Estos fueron seguidos por el CUDA de Nvidia, que permiti\u00f3 a los programadores ignorar los conceptos gr\u00e1ficos subyacentes a favor de los conceptos m\u00e1s comunes de computaci\u00f3n de alto rendimiento. Las ofertas m\u00e1s nuevas e independientes del proveedor de hardware incluyen DirectCompute de Microsoft y OpenCL de Apple \/ Khronos Group. Esto significa que las tuber\u00edas modernas de GPGPU pueden aprovechar la velocidad de una GPU sin requerir la conversi\u00f3n completa y expl\u00edcita de los datos a una forma gr\u00e1fica.<\/p>\n<h2><span style=\"color: #ff6600;\">Implementaciones<\/span><\/h2>\n<p style=\"text-align: justify;\">Cualquier idioma que permita que el c\u00f3digo que se ejecuta en la CPU para sondear un sombreador de GPU para valores de retorno, puede crear un marco GPGPU.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.hostdime.com.pe\/blog\/historia-e-implementaciones-de-la-computacion-de-proposito-general-en-unidades-de-procesamiento-de-graficos\/opencl-blog-hostdime\/\" rel=\"attachment wp-att-2433\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-2433 alignleft\" src=\"https:\/\/www.hostdime.com.pe\/blog\/wp-content\/uploads\/2019\/02\/OpenCL-Blog-HostDime-300x278.png\" alt=\"OpenCL-Blog HostDime\" width=\"300\" height=\"278\" \/><\/a>A partir de 2016, <strong>OpenCL<\/strong> es el lenguaje de computaci\u00f3n de GPU de uso general dominante y es un est\u00e1ndar abierto definido por el Grupo Khronos. OpenCL proporciona una plataforma GPGPU multiplataforma que, adem\u00e1s, admite el c\u00f3mputo paralelo de datos en las CPU. OpenCL es activamente compatible con las plataformas Intel, AMD, Nvidia y ARM. El Grupo Khronos est\u00e1 actualmente involucrado en el desarrollo de SYCL, que tiene sus implementaciones con ComputeCPP y SYCL STL, la primera desarrollada por Codeplay, y actualmente solo es compatible con los sistemas operativos Linux. La segunda, organizada por Khronos Group en GitHub, y se puede compilar para cualquier sistema operativo moderno.<\/p>\n<p style=\"text-align: justify;\">El marco propietario dominante es Nvidia CUDA. Nvidia lanz\u00f3 CUDA en 2006, un kit de desarrollo de software (SDK) y una interfaz de programaci\u00f3n de aplicaciones (API) que permite usar el lenguaje de programaci\u00f3n C para codificar algoritmos para su ejecuci\u00f3n en la serie GeForce 8 y las GPU posteriores.<\/p>\n<p style=\"text-align: justify;\">Los est\u00e1ndares de programaci\u00f3n para computaci\u00f3n paralela incluyen OpenCL (proveedor independiente), OpenACC y OpenHMPP. Mark Harris, el fundador de GPGPU.org, acu\u00f1\u00f3 el t\u00e9rmino GPGPU.<\/p>\n<p style=\"text-align: justify;\">El <strong>Xcelerit SDK<\/strong>, creado por Xcelerit, est\u00e1 dise\u00f1ado para acelerar grandes bases de c\u00f3digos C ++ o C # existentes en las GPU con un esfuerzo m\u00ednimo. Proporciona un modelo de programaci\u00f3n simplificado, automatiza la paralelizaci\u00f3n, gestiona los dispositivos y la memoria, y compila los binarios de CUDA. Adem\u00e1s, las CPU de varios n\u00facleos y otros aceleradores pueden dirigirse desde el mismo c\u00f3digo fuente.<\/p>\n<p style=\"text-align: justify;\"><strong>OpenVIDIA<\/strong> fue desarrollado en la Universidad de Toronto entre 2003-2005, en colaboraci\u00f3n con Nvidia.<\/p>\n<p style=\"text-align: justify;\"><strong>Altimesh Hybridizer<\/strong> creado por Altimesh compila Common Intermediate Language to CUDA binaries. Soporta gen\u00e9ricos y funciones virtuales. La depuraci\u00f3n y el perfilado se integran en Visual Studio y Nsight. Est\u00e1 disponible como una extensi\u00f3n de Visual Studio en Visual Studio Marketplace.<\/p>\n<p style=\"text-align: justify;\">Microsoft present\u00f3 la API de computaci\u00f3n GPU <strong>DirectCompute<\/strong>, lanzada con la API de DirectX 11.<\/p>\n<p>Alea GPU creada por QuantAlea introduce capacidades de computaci\u00f3n nativas de GPU para el lenguaje Microsoft. NET F # y C #. Alea GPU tambi\u00e9n proporciona un modelo de programaci\u00f3n GPU simplificado basado en GPU paralelo-para y agregado agregado usando delegados y administraci\u00f3n de memoria autom\u00e1tica.<\/p>\n<p>MATLAB admite la aceleraci\u00f3n GPGPU utilizando Parallel Computing Toolbox y MATLAB Distributed Computing Server, y paquetes de terceros como Jacket.<\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/www.hostdime.com.pe\/blog\/historia-e-implementaciones-de-la-computacion-de-proposito-general-en-unidades-de-procesamiento-de-graficos\/fisica-newton-blog-hostdime\/\" rel=\"attachment wp-att-2443\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-2443 alignright\" src=\"https:\/\/www.hostdime.com.pe\/blog\/wp-content\/uploads\/2019\/02\/Fisica-newton-Blog-HostDime-300x227.png\" alt=\"Fisica-newton-Blog-HostDime\" width=\"400\" height=\"303\" \/><\/a>El procesamiento GPGPU tambi\u00e9n se usa para <strong>simular la f\u00edsica newtoniana<\/strong> por parte de los motores de f\u00edsica, y las implementaciones comerciales incluyen Havok Physics, FX y PhysX, que normalmente se usan para juegos de computadora y video.<\/p>\n<p style=\"text-align: justify;\"><strong>Close to Metal<\/strong>, que ahora se llama Stream, es la tecnolog\u00eda AMD\u00a0GPGPU &#8216;s para las GPU basadas en ATI Radeon.<\/p>\n<p>El paralelismo masivo acelerado de C ++ ( C ++ AMP ) es una biblioteca que acelera la ejecuci\u00f3n del c\u00f3digo C ++ mediante la explotaci\u00f3n del hardware paralelo de datos en las GPU.<\/p>\n<h2><span style=\"color: #ff6600;\">Ordenadores m\u00f3viles<\/span><\/h2>\n<p style=\"text-align: justify;\">Debido a la tendencia de aumentar el poder de las GPU m\u00f3viles, la programaci\u00f3n de prop\u00f3sito general se hizo disponible tambi\u00e9n en los dispositivos m\u00f3viles que ejecutan los principales sistemas operativos m\u00f3viles.<\/p>\n<p style=\"text-align: justify;\"><strong>Google Android 4.2<\/strong> habilit\u00f3 la ejecuci\u00f3n de c\u00f3digo RenderScript en la GPU del dispositivo m\u00f3vil. Apple introdujo una API de Metal patentada para aplicaciones iOS, capaz de ejecutar c\u00f3digo arbitrario a trav\u00e9s de los sombreadores de c\u00e1lculo de GPU de Apple.<\/p>\n<p>Leer tambi\u00e9n: <a href=\"https:\/\/pcweb.info\/las-gpu-en-un-data-center-que-hacen-alli\/\" target=\"_blank\" rel=\"noopener\">Las GPU en un data center, que hacen all\u00ed<\/a>\u00a0; <a href=\"http:\/\/blog.hostdime.la\/que-es-big-data-analytics-porque-necesito-para-mi-negocio\/\" target=\"_blank\" rel=\"noopener\">qu\u00e9 es el Big Data Analytics y porqu\u00e9 lo necesito para mi negocio<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Historia e implementaciones de la Computaci\u00f3n de prop\u00f3sito general en unidades de procesamiento de gr\u00e1ficos. Vamos a continuar el discurso empezado en nuestro anterior post titulado Qu\u00e9 es la Computaci\u00f3n GPU, definici\u00f3n, concepto.<\/p>\n","protected":false},"author":2,"featured_media":2442,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-2416","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tecnologia"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/posts\/2416","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/comments?post=2416"}],"version-history":[{"count":0,"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/posts\/2416\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/media\/2442"}],"wp:attachment":[{"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/media?parent=2416"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/categories?post=2416"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostdime.com.pe\/blog\/wp-json\/wp\/v2\/tags?post=2416"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}