{"id":113552,"date":"2024-02-12T22:02:43","date_gmt":"2024-02-12T20:02:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/opublikovan-instrumentarij-zluda-pozvolyayushhij-zapuskat-cuda-prilozheniya-na-gpu-amd"},"modified":"2024-02-12T22:02:43","modified_gmt":"2024-02-12T20:02:45","slug":"opublikovan-instrumentarij-zluda-pozvolyayushhij-zapuskat-cuda-prilozheniya-na-gpu-amd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/opublikovan-instrumentarij-zluda-pozvolyayushhij-zapuskat-cuda-prilozheniya-na-gpu-amd","title":{"rendered":"Toolkit ZLUDA lan\u00e7ado, permitindo a execu\u00e7\u00e3o de aplicativos CUDA em GPUs AMD","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>O projeto ZLUDA desenvolveu uma implementa\u00e7\u00e3o aberta da tecnologia CUDA para GPUs AMD, permitindo a execu\u00e7\u00e3o de aplica\u00e7\u00f5es CUDA n\u00e3o modificadas com desempenho pr\u00f3ximo ao de aplica\u00e7\u00f5es executadas sem camadas intermedi\u00e1rias. O conjunto de ferramentas publicado garante compatibilidade bin\u00e1ria com aplica\u00e7\u00f5es CUDA existentes, compiladas com o compilador CUDA para GPUs NVIDIA. A implementa\u00e7\u00e3o \u00e9 constru\u00edda sobre a pilha ROCm em desenvolvimento pela AMD e o runtime HIP (Heterogeneous-computing Interface for Portability). O c\u00f3digo do projeto \u00e9 escrito em Rust e \u00e9 distribu\u00eddo sob as licen\u00e7as MIT e Apache 2.0. A opera\u00e7\u00e3o \u00e9 suportada em Linux e Windows.      <\/p>\n<p>A camada para organizar o funcionamento da CUDA em sistemas com GPUs AMD foi desenvolvida nos \u00faltimos dois anos, mas o projeto tem uma hist\u00f3ria mais longa e foi originalmente criado para garantir o funcionamento da CUDA em GPUs Intel. A mudan\u00e7a na pol\u00edtica de suporte a GPUs se explica pelo fato de que, inicialmente, o desenvolvedor ZLUDA era um funcion\u00e1rio da Intel, mas em 2021, a empresa decidiu que a possibilidade de executar aplica\u00e7\u00f5es CUDA em GPUs Intel n\u00e3o era de interesse para os neg\u00f3cios e n\u00e3o acelerou o desenvolvimento da iniciativa.     <\/p>\n<p>No in\u00edcio de 2022, o desenvolvedor saiu da Intel e firmou contrato com a AMD para desenvolver uma camada de compatibilidade com a CUDA. A AMD solicitou, durante o desenvolvimento, que n\u00e3o fosse divulgado o interesse da AMD no projeto ZLUDA e que n\u00e3o fossem feitos commits no reposit\u00f3rio p\u00fablico do ZLUDA. Ap\u00f3s dois anos, a AMD decidiu que a execu\u00e7\u00e3o de aplica\u00e7\u00f5es CUDA em GPUs AMD n\u00e3o era de interesse para os neg\u00f3cios, o que, segundo o contrato, permitiu ao desenvolvedor abrir suas cria\u00e7\u00f5es. Como os fabricantes de GPUs deixaram de financiar o projeto, seu futuro agora depende do interesse da comunidade e de propostas de colabora\u00e7\u00e3o de outras empresas. Sem apoio externo, o projeto poder\u00e1 se desenvolver apenas em dire\u00e7\u00f5es que sejam de interesse pessoal do autor, como DLSS (Deep Learning Super Sampling).    <\/p>\n<p>Na sua forma atual, o n\u00edvel de qualidade da implementa\u00e7\u00e3o \u00e9 avaliado como uma vers\u00e3o alfa. Nesse sentido, o ZLUDA j\u00e1 pode ser usado para executar muitas aplica\u00e7\u00f5es CUDA, incluindo Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM e Arnold. H\u00e1 suporte m\u00ednimo para primitivas e bibliotecas cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL e NVML.    <\/p>\n<p>A primeira execu\u00e7\u00e3o de aplicativos CUDA sob ZLUDA ocorre com atrasos significativos, pois ZLUDA compila o c\u00f3digo GPU. Nas execu\u00e7\u00f5es subsequentes, esse atraso n\u00e3o est\u00e1 presente, uma vez que o c\u00f3digo compilado \u00e9 armazenado em cache. Durante a execu\u00e7\u00e3o do c\u00f3digo compilado, o desempenho \u00e9 pr\u00f3ximo ao nativo. Ao executar o pacote Geekbench na GPU AMD Radeon 6800 XT, a vers\u00e3o do conjunto de testes para CUDA, executada com ZLUDA, mostrou um desempenho significativamente mais alto do que a vers\u00e3o baseada em OpenCL.     <center><img decoding=\"async\" alt=\"Toolkit ZLUDA lan\u00e7ado, permitindo a execu\u00e7\u00e3o de aplicativos CUDA em GPUs AMD\" src=\"\/wp-content\/uploads\/2024\/02\/d851080f089fd00c9b35724eed3a3840.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>O suporte \u00e0 API do Driver CUDA oficial e \u00e0s partes da API CUDA n\u00e3o documentadas estudadas por meio de engenharia reversa foi implementado no ZLUDA, substituindo chamadas de fun\u00e7\u00f5es por fun\u00e7\u00f5es equivalentes fornecidas pelo runtime HIP, que \u00e9 bastante semelhante ao CUDA. Por exemplo, a fun\u00e7\u00e3o cuDeviceGetAttribute() \u00e9 substitu\u00edda por hipDeviceGetAttribute(). Da mesma forma, a compatibilidade com bibliotecas da NVIDIA, como NVML, cuBLAS e cuSPARSE, \u00e9 garantida \u2014 para essas bibliotecas, o ZLUDA fornece bibliotecas de transcri\u00e7\u00e3o com o mesmo nome e o mesmo conjunto de fun\u00e7\u00f5es, constru\u00eddas como uma camada sobre bibliotecas semelhantes da AMD.     <\/p>\n<p>O c\u00f3digo GPU dos aplicativos, compilado na forma PTX (Parallel Thread Execution), \u00e9 transpilado por um compilador especial, primeiro para uma representa\u00e7\u00e3o intermedi\u00e1ria LLVM IR, a partir da qual o c\u00f3digo bin\u00e1rio para GPU AMD \u00e9 gerado.    <center><img decoding=\"async\" alt=\"Toolkit ZLUDA lan\u00e7ado, permitindo a execu\u00e7\u00e3o de aplicativos CUDA em GPUs AMD\" src=\"\/wp-content\/uploads\/2024\/02\/607b77f27a07c7915211c49a4b405bd6.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=60591\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u043e\u0435\u043a\u0442 ZLUDA \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 CUDA \u0434\u043b\u044f GPU AMD, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0435\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 CUDA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u0431\u043b\u0438\u0437\u043a\u043e\u0439 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0431\u0435\u0437 \u043f\u0440\u043e\u0441\u043b\u043e\u0435\u043a. \u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0431\u0438\u043d\u0430\u0440\u043d\u0443\u044e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u043e\u0441\u0442\u044c \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 CUDA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0442\u043e\u0440\u0430 CUDA \u0434\u043b\u044f GPU NVIDIA. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u043e\u0432\u0435\u0440\u0445 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0435\u0439 AMD \u0441\u0442\u0435\u043a\u0430 ROCm \u0438 runtime HIP (Heterogeneous-computing Interface for Portability). \u041a\u043e\u0434 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":113553,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-113552","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u043e\u0435\u043a\u0442 ZLUDA \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 CUDA \u0434\u043b\u044f GPU AMD, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0435\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 CUDA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u0431\u043b\u0438\u0437\u043a\u043e\u0439 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0431\u0435\u0437.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pt\/blog\/news\/opublikovan-instrumentarij-zluda-pozvolyayushhij-zapuskat-cuda-prilozheniya-na-gpu-amd\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 ZLUDA, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c CUDA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 GPU AMD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u043e\u0435\u043a\u0442 ZLUDA \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 CUDA \u0434\u043b\u044f GPU AMD, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0435\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 CUDA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u0431\u043b\u0438\u0437\u043a\u043e\u0439 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0431\u0435\u0437.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/opublikovan-instrumentarij-zluda-pozvolyayushhij-zapuskat-cuda-prilozheniya-na-gpu-amd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-02-12T20:02:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-02-12T20:02:45+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47 Ferramenta ZLUDA publicada, permitindo a execu\u00e7\u00e3o de aplicativos CUDA em GPUs AMD | ProHoster","description":"O projeto ZLUDA preparou uma implementa\u00e7\u00e3o aberta da tecnologia CUDA para GPUs AMD, permitindo a execu\u00e7\u00e3o de aplicativos CUDA n\u00e3o modificados com desempenho pr\u00f3ximo ao de aplica\u00e7\u00f5es executadas sem modifica\u00e7\u00f5es.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/opublikovan-instrumentarij-zluda-pozvolyayushhij-zapuskat-cuda-prilozheniya-na-gpu-amd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 ZLUDA, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c CUDA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043d\u0430 GPU AMD | ProHoster","og:description":"\u041f\u0440\u043e\u0435\u043a\u0442 ZLUDA \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b \u043e\u0442\u043a\u0440\u044b\u0442\u0443\u044e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 CUDA \u0434\u043b\u044f GPU AMD, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043d\u0435\u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 CUDA-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e, \u0431\u043b\u0438\u0437\u043a\u043e\u0439 \u043a \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0445 \u0431\u0435\u0437.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/opublikovan-instrumentarij-zluda-pozvolyayushhij-zapuskat-cuda-prilozheniya-na-gpu-amd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-02-12T20:02:45+00:00","article:modified_time":"2024-02-12T20:02:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/113552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=113552"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/113552\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/113553"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=113552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=113552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=113552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}