Vcc, un compilador basado en Clang diseñado para generar código ejecutable en Vulkan

logo de vcc

Vcc: el compilador de Vulkan Clang

En el panorama de las API de gráficos, los lenguajes de sombreado han enfrentado una limitación, pues a pesar de la posibilidad de escribir código en un subconjunto común entre GLSL, HLSL y C++, las restricciones actuales estas presentes.

Es por ello que nace Vcc (Vulkan Clang Compiler) el compilador Vulkan Clang, el cúal es un proyecto que estuvo en desarrollo durante 3 años, surge como una respuesta a estas limitaciones y desafíos. Este proyecto busca no solo superar las restricciones expresivas, sino eliminar el concepto mismo de lenguajes de sombreado.

Al incorporar la familia completa de lenguajes C/C++ a Vulkan, Vcc introduce características nunca antes vistas en los sombreadores de Vulkan, como punteros físicos, punteros genéricos, llamadas a funciones reales y un completo flujo de control.

Esta iniciativa busca cerrar la brecha de software entre las API de gráficos y de computación. Al hacer que Vulkan sea compatible con otras API de computación de GPU, Vcc se presenta como un paso importante hacia la unificación de la programación en gráficos y computación, alineándose con la adopción masiva y la calidad de implementación que caracterizan a Vulkan.

Sobre VCC

Vcc es un compilador basado en Clang diseñado para generar código ejecutable en Vulkan, tiene como objetivo, el posicionarse como un compilador capaz de traducir código C++ en una representación que pueda ejecutarse en GPU que soporten la API de gráficos Vulkan. A diferencia de los modelos de programación de GPU basados ​​en los lenguajes de sombreado GLSL y HLSL, Vcc toma la idea de eliminar por completo el uso de lenguajes de sombreado separados y brinda la capacidad de compilar directamente código C/C++ para Vulkan.

Aunque podría considerarse un competidor de GLSL y HLSL, la verdadera intención detrás de este proyecto va más allá, pues Vcc busca incorporar la familia de lenguajes C/C++ a Vulkan, presentando una serie de características en los sombreadores de Vulkan.

Vcc es simplemente una interfaz para Shady, un IR y un compilador diseñado para ampliar SPIR-V con soporte para las construcciones antes mencionadas. Shady se presenta como un IR relativamente convencional e incluye soporte para analizar LLVM IR. Maneja la reducción y emulación de todas las funciones adicionales que no se encuentran en las versiones actuales de SPIR-V 3 .

Por supuesto, hay una serie de características únicas que sólo se encuentran en los sombreadores. Estos se exponen en Vcc mediante intrínsecos y anotaciones, lo que permite escribir código que interactúe con las diversas características del canal Vulkan.

El proceso de compilación en Vcc implica la utilización de los componentes del proyecto LLVM y Clang como interfaz. Para su ejecución en la GPU, Vcc desarrolla su propia representación de sombreador intermedia «Shady», junto con un compilador dedicado para convertir el código a esta representación. Este enfoque permite la compilación de código C/C++ estándar y se complementa con funciones integradas específicas para aprovechar las capacidades de la GPU.

Vcc destaca por admitir funciones nativas de C/C++ para controlar el flujo del programa, incluso permitiendo el uso de la instrucción «goto». Asimismo, proporciona la capacidad de llamar funciones, ejecutar funciones de manera recursiva y utilizar diversos tipos de punteros, como punteros físicos, punteros etiquetados y punteros de función. Además, se facilita la realización de operaciones aritméticas en punteros y la determinación de diseños de tipos en la memoria.

La representación intermedia de sombreador Shady se basa en SPIR-V 3 y se expande para admitir construcciones especiales que son inherentes a las características de C/C++. La emulación se utiliza para implementar capacidades avanzadas que no son directamente aplicables a SPIR-V. Vcc incluye funciones y anotaciones integradas para permitir que los programas utilicen de manera eficiente las capacidades específicas de los sombreadores, proporcionando así un entorno versátil y potente para el desarrollo de aplicaciones GPU.

Finalmente, cabe mencionar que no todo es color de rosa y es esencial tener en cuenta algunas limitaciones de la implementación. Por ejemplo, Vcc no admite excepciones de C++, y la funcionalidad de malloc/free no está disponible. Además, existe una restricción en la portabilidad de funciones y punteros entre el sistema host y la GPU. Estas consideraciones son cruciales al planificar el desarrollo de aplicaciones que utilicen Vcc para garantizar una implementación eficaz y libre de problemas.

Si estás interesado en poder conocer más al respecto, puedes consular el sitio web y para los interesados en el código, deben saber que está disponible aquí.

from Linux Adictos https://ift.tt/gDsnb8d
via IFTTT

LeftoverLocals, una vulnerabilidad en GPUS que permite el robo de datos 

vulnerabilidad

Si se explotan, estas fallas pueden permitir a los atacantes obtener acceso no autorizado a información confidencial o, en general, causar problemas

Hace poco, los investigadores de Trail of Bits (una firma de seguridad) dieron a conocer mediante una publicación de blog que detectaron un problema en las GPU de AMD, Apple, Qualcomm e Imagination, que hace posible que alguien obtenga datos de la memoria de la tarjeta gráfica, incluso si fueron creados por un programa diferente.

Bautizada como LeftoverLocals, esta vulnerabilidad afecta a las unidades de procesamiento de gráficos y con lo cual un atacante puede robar una cantidad significativa de datos.

Sobre LeftoverLocals

Catalogada ya bajo «CVE-2023-4969» y con una puntación de «8», hacen de LeftoverLocals, es una vulnerabilidad sumamente peligrosa, ya que permite la recuperación de datos de la memoria local de la GPU, que persisten después de que se haya ejecutado otro proceso y podrían contener información sensible.

Lo que hace de LeftoverLocals una vulnerabilidad peligrosa, es que afecta a una variedad de dispositivos ampliamente utilizados, muchos de los cuales seguían sin parchear y que puede ser explotada en entornos multiusuario, donde controladores para diferentes usuarios se ejecutan en la misma GPU, además de que podría ser explotada por malware para monitorear la actividad de los procesos que se ejecutan en la GPU, identificando datos procesados por el kernel de la GPU.

LeftoverLocals surge debido a un aislamiento insuficiente de la memoria local de la GPU y la incapacidad de limpiar dicha memoria después de la ejecución de procesos en la GPU. Esto permite que un proceso malicioso identifique datos residuales en la memoria local después de que otro proceso se ha ejecutado o lea datos de un proceso actualmente en ejecución.

Se menciona que, la esencia de LeftoverLocals radica en memoria local en una GPU que actúa como una caché para almacenar cálculos intermedios y puede variar en tamaño desde decenas de kilobytes hasta varios megabytes para cada unidad informática. El ataque implica ejecutar un controlador (kernel) en la GPU que copia periódicamente el contenido de la memoria local disponible en la memoria global (VRAM). Dado que la memoria local no se borra al cambiar entre procesadores en la GPU y se comparte entre diferentes procesos dentro de la misma unidad de cálculo de la GPU, puede contener datos residuales de otros procesos.

Con la finalidad de probar la vulnerabilidad, los investigadores de Trail of Bits han desarrollado algunos prototipos de exploits para diferentes GPU, utilizando las API OpenCL, Vulkan y Metal para acceder a la GPU. Aunque llevar a cabo un ataque desde un navegador a través de WebGPU es difícil debido a las comprobaciones dinámicas de límites de matriz agregadas por WebGPU, los investigadores han demostrado cómo la vulnerabilidad puede utilizarse para determinar datos de salida de otros usuarios y crear canales de comunicación ocultos entre diferentes procesos.

Ademas de ello, se menciona que la cantidad de datos filtrados depende del marco específico de la GPU y del tamaño de su memoria local. Por ejemplo, la relativamente grande AMD Radeon RX 7900 XT pierde alrededor de 5.5 MB o alrededor de 181 MB por cada consulta LLM, según los investigadores.

Dado que las GPU se utilizan cada vez más para acelerar las aplicaciones de inteligencia artificial y aprendizaje automático, los investigadores advirtieron que fallas como LeftoverLocals podrían convertirse en un objetivo importante.

«En general, la introducción del aprendizaje automático plantea nuevas superficies de ataque que los modelos de amenazas tradicionales no tienen en cuenta y que pueden conducir a un acceso implícito y explícito a datos, parámetros del modelo o resultados resultantes, aumentando la superficie de ataque general del sistema», señala el informe. escribieron los investigadores.

Trail of Bits señaló que se han implementado soluciones para esta vulnerabilidad en algunos dispositivos de Apple, y se espera una actualización de controladores de AMD en marzo, por su parte Qualcomm ha informado que ha solucionado el problema para la GPU Adreno a630 en la actualización de firmware 2.07, mientras que Imagination ha proporcionado una solución en el nuevo DDK 23.3 lanzado en diciembre.

Por otra parte, se menciona que no se ven afectadas las GPU de NVIDIA, Intel y ARM. En los controladores OpenCL de código abierto de Mesa para GPU AMD, la memoria se borra después de cada inicio del kernel, pero este método se considera ineficaz en algunos casos.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.

from Linux Adictos https://ift.tt/7UbRWYv
via IFTTT

Digital afterlife – how to deal with social media accounts when someone dies

Deciding what to do with a dead friend or relative’s online presence is complicated and time-consuming but there are shortcuts

Gavin Blomeley was lucky his mother was incredibly organised before she died. She left a note that included the passcode to her phone and access to all her online passwords.

“I can’t even begin to imagine how difficult this could have gotten not having these passwords or knowing this note with all of her passwords existed,” Blomeley says.

Sign up for Guardian Australia’s free morning and afternoon email newsletters for your daily news roundup

Continue reading…

from Data and computer security | The Guardian https://ift.tt/TsD5NZA
via IFTTT