Práctica de renderizado de HUAWEI CLOUD

  //  

Nota del editor: El desarrollo de la computación en la nube y la infraestructura de red proporciona mejores oportunidades de desarrollo para el renderizado en la nube. Huawei Cloud ha estado explorando y desarrollando durante mucho tiempo el renderizado en la nube en las tres direcciones: motor de renderizado de gráficos de desarrollo propio, renderizado de campo industrial y renderizado acelerado por IA. . Esta estación LiveVideoStackCon 2023 de Shanghai invitó a Chen Pu de HUAWEI CLOUD a compartir algunas aplicaciones de renderizado en la nube en escenarios verticales.

Texto/Chen Pu

Organizar/LiveVideoStack

Buenas tardes a todos. Es un gran honor compartir y comunicarme con ustedes hoy. El tema de este intercambio es la práctica de renderizado en la nube de Huawei, desde gráficos 2D hasta espacios 3D.

Me uní a Huawei en 2005. Desde 2007, he sido responsable de la investigación y el desarrollo de la computación en la nube de Huawei, la nube de escritorio de desarrollo propio y las tecnologías de inteligencia artificial. Actualmente estoy trabajando en la investigación y el desarrollo de los servicios de renderizado en la nube de Huawei.

Este intercambio se divide en las siguientes partes: en primer lugar, presenta el alcance de la tecnología de renderizado y los problemas que el renderizado en la nube espera resolver; en segundo lugar, presenta algunas prácticas de Huawei Cloud Rendering en 2D, 3D y renderizado nativo de la nube; luego presenta imágenes industriales y prácticas de renderizado acelerado por IA.

-01-

gama de técnicas de renderizado

65d9d1c675b44e19be96062c2f939db4.png

Cuando se trata de renderizado en la nube, puedes pensar directamente en los juegos en la nube, pero en realidad los dos no son lo mismo. HUAWEI CLOUD se compromete a aplicar la tecnología de renderizado a diversas industrias. Actualmente, incluye principalmente dos ramas: renderizado en tiempo real y renderizado fuera de línea. Los efectos se utilizan principalmente en escenas como renderizados de diseño y cine y televisión.

-02-

Problemas que el renderizado en la nube espera resolver

Algunas personas tienden a equiparar directamente el renderizado con los gráficos 3D, así que primero explique el concepto de renderizado. La Enciclopedia Baidu define el renderizado como el último proceso de CG, y esta explicación está sesgada hacia el renderizado fuera de línea. Wikipedia y la Enciclopedia Baidu también mencionaron la renderización en motores de navegador y OpenGL. Puede ver que los objetos renderizados incluyen gráficos 2D y 3D. La definición de renderizado de Wikipedia es más precisa; en realidad se refiere al proceso de software que utiliza datos binarios y formateados para generar imágenes.

9b1cf5be9f8e81a6fd822804795463e1.png

Definimos el renderizado en la nube como: realizar el negocio de renderizado de gráficos del cliente en la nube, y todo el proceso pasa de no tener gráficos a gráficos 2D y luego a gráficos 3D.

3937ff3d18a11dacaf85ad809ca0a85d.png

Nuestra arquitectura de representación de imágenes existente se muestra arriba, desde la GPU en la capa más baja de la tecnología 3D hasta el controlador de la tarjeta gráfica, DX, OpenGL, tiempo de ejecución Vulkan, motor de representación 3D y luego a las aplicaciones 3D. Es difícil utilizar directamente la arquitectura subyacente. API para desarrollar programas de renderizado de gráficos.

Otra rama de aplicaciones 2D incluye principalmente aplicaciones 2D comunes para PC, como Office, desde GPU, controladores de tarjetas gráficas, biblioteca de tiempo de ejecución GDI definida por Microsoft, marco GUI hasta aplicaciones 2D.

-03-

Práctica de renderizado 2D

668ecbc43bae1d311954e0c041a0de3a.png

A continuación, presentaremos nuestra práctica 2D en la nube. El proceso de visualización de gráficos 2D estándar se muestra en la figura anterior. Primero, el programa de aplicación llama a la biblioteca del programa GUI y la biblioteca GUI se convierte en la llamada de la biblioteca en tiempo de ejecución GDI subyacente. En este momento, la biblioteca en tiempo de ejecución todavía está en el usuario. estado y no llama al hardware. Luego, el tiempo de ejecución de GDI llama al controlador de la tarjeta gráfica, y el controlador de la tarjeta gráfica llama a la tarjeta gráfica para completar la representación de la imagen y su salida a la pantalla.

d4b86883c2db12fe3fb3ce53c526d735.png

Entonces, para realizar la visualización remota de aplicaciones 2D, ¿solo es necesario codificar y transmitir la imagen renderizada al cliente? De hecho, este método tiene desventajas como baja eficiencia de codificación, gran ocupación del ancho de banda de video y distorsión del color causada por la compresión con pérdida, y no es adecuado para la renderización 2D en la nube.

El proceso de renderizado que diseñamos es convertir la secuencia de llamadas de renderizado de imágenes en datos después de que el controlador de la tarjeta gráfica obtiene la llamada de renderizado de imágenes 2D, usar el programa de procesamiento de comandos de renderizado 2D para procesar los datos, codificar la imagen y comprimirla sin pérdidas, y finalmente transmitir al cliente a través de la pantalla decodificada de la red. Tomando la entrada de texto como ejemplo, la cadena de entrada se convierte en texto a nivel de píxel mediante controladores de fuente y solo necesita mostrarse en una pequeña área de actualización en la pantalla, la cantidad de datos transmitidos es pequeña y se puede lograr una compresión sin pérdidas. . Existen planes de implementación para el proceso anterior en plataformas Windows y Linux.

-04-

Práctica en la nube de aplicaciones de renderizado 3D

977460a12545a5ef68c450e531cbba19.png

La arquitectura de renderizado en la nube 3D es similar al renderizado 2D. Debido a limitaciones técnicas en los primeros días, optamos por utilizar la tecnología de transferencia de GPU para vincular la GPU a la máquina virtual. La máquina virtual puede acceder directamente a la GPU para obtener capacidades de representación de gráficos de alto rendimiento y luego transmitir la pantalla a al cliente a través de tecnología de aplicación remota.

La ventaja de este método es que la máquina virtual puede instalar directamente el controlador de gráficos estándar del fabricante del equipo, lo que garantiza la compatibilidad y acerca el rendimiento de la tarjeta gráfica al de la GPU física. La desventaja es que la GPU está vinculada a la máquina virtual, lo que pierde flexibilidad y cuesta más. Pero sigue siendo la forma habitual de utilizar GPU en la nube.

ebbf3c387a9e51b0c451590fbc636680.png

En 2012, intentamos transferir el renderizado desde la nube al cliente para su finalización remota. Básicamente, necesitamos obtener el flujo de instrucciones 3D del programa de usuario.

Según el controlador de la tarjeta gráfica Microsoft WDDM, se puede capturar la llamada de representación de imágenes 3D de la aplicación del usuario. Bajo esta arquitectura, el programa del controlador se divide en modo de usuario y modo kernel. Para implementar programas 3D, debe confiar en la biblioteca de tiempo de ejecución directa, que llama al controlador proporcionado por el fabricante del dispositivo e interactúa con la GPU a través del controlador en modo kernel. . También existen programas similares para OpenGL.

664a02e690dc80462c2719160171c772.png

Entonces procesamos todos los flujos de instrucciones de la aplicación 3D, los transmitimos al cliente y los volvimos a renderizar en el cliente. Después de más de 50 pruebas de juegos, la función de renderizado básicamente se realizó. Sin embargo, el ancho de banda es inestable y la dificultad y el costo de implementación son relativamente altos.

8f7ca5b878f2770165e6c7de69c9b544.png

En 2012 comenzamos a desarrollar software de virtualización de GPU. Su principio básico se implementa a través de dos tipos de máquinas virtuales, una es una máquina virtual GPU virtual que atiende a los clientes y la otra es la máquina virtual GPU física antes mencionada que utiliza tecnología de transferencia.

Construimos comunicación de memoria entre las dos máquinas virtuales en la plataforma de virtualización, instalamos el controlador de la tarjeta gráfica virtual en la máquina virtual GPU virtual, usamos el controlador para capturar la llamada del controlador de imagen 3D y usamos la memoria compartida para transmitirla al físico. Máquina virtual GPU En la máquina virtual GPU física Utilice la tarjeta gráfica física de paso para renderizar y devolver la pantalla después de renderizar.

Este método enfrenta dos desafíos: uno es que es difícil implementar la compatibilidad de los controladores debido a las múltiples versiones de DirectX. En segundo lugar, es necesario acelerar aún más la transmisión de la memoria interna compartida. La desventaja es que la solución en sí pertenece al modelo de preferencia de recursos y la capacidad de aislamiento es deficiente. En segundo lugar, la investigación y el desarrollo de la compatibilidad del controlador de la tarjeta gráfica virtual requiere mucha mano de obra.

01b95655a59c8941d4d75824c8eda9ac.png

En 2013, cooperamos con Nvidia para admitir la virtualización de GPU de hardware en la plataforma de virtualización. Este método puede obtener una mejor capacidad de aislamiento y compatibilidad de controladores. La desventaja es que Nvidia cobra una tarifa de licencia separada para la máquina virtual, que es relativamente costosa.

-05-

Práctica de renderizado nativo en la nube

bba8c13f5e72aaf5651649d4bea29474.png

La solución presentada anteriormente solo se centra en las capacidades de representación de gráficos subyacentes admitidas por el nivel del sistema operativo y no penetra lo suficiente en escenarios comerciales específicos. Desde la perspectiva de escenarios comerciales reales, el objetivo de HUAWEI CLOUD Rendering es ayudar a los clientes a migrar sus escenarios de renderizado gráfico a la nube. Los escenarios de renderizado fuera de línea sirven principalmente para cine y televisión y dibujos de diseño de alta definición. Las tecnologías de renderizado a nivel de aplicación derivadas incluyen Aceleración de renderizado por IA y renderizado nativo de HUAWEI CLOUD. Renderizado con trazado de rayos sin conexión compatible con el motor.

La escena de renderizado en tiempo real sirve para espacio 3D, gemelos digitales, diseño y juegos en tiempo real, etc. Se divide principalmente en dos conjuntos de soluciones: la aplicación 3D existente va directamente a la nube sin modificaciones y la nube después de la nube nativa. optimización, incluida la representación en tiempo real de aplicaciones 3D y aplicaciones en la nube. Y representación remota, aceleración del espacio 3D.

A continuación, presentaremos la tecnología de renderizado en la nube en escenarios de renderizado en tiempo real. Huawei Cloud proporciona productos de aplicaciones en la nube para ayudar a las aplicaciones existentes a migrar directamente a la nube, incluido principalmente software de diseño 3D que requiere una alta potencia informática de CPU/GPU, lo que resuelve el problema. La instalación, como CAD, CAE, CAM y otros programas de diseño, modelado y simulación, requiere mucho tiempo y trabajo y es costosa de vender.

41aaafa6907f1350a191900611077778.png

Su principio es utilizar la tecnología multisesión de Windows para crear una tecnología de aislamiento liviana, de modo que Windows Server pueda atender a varios clientes al mismo tiempo. Su ventaja es que tiene cierta capacidad de aislamiento y, debido a la implementación de sesiones múltiples a nivel de máquina virtual, cada sesión puede acceder directamente a la GPU física. Es una tecnología estándar de Windows y tiene buena interoperabilidad con la red interna de la empresa. La desventaja es que la computación GPU y la memoria de video están en modo preventivo multiusuario y no se pueden aislar. Y cada sesión debe pagar la licencia RDS de Windows de forma independiente.

dc75dc29823d88871e2215605aced7e2.png

Para optimizar el problema del costo de la licencia mencionado anteriormente, combinamos la tecnología Sandbox y Hook para permitir que Windows ejecute múltiples aplicaciones sin usar tecnología de sesiones múltiples y atienda a múltiples clientes de acceso. Esta es también la tecnología principal actual del plan de renderizado en la nube. Su ventaja es que no depende de la tecnología multisesión de Windows, lo que reduce el costo de la licencia, pero la desventaja es que, en comparación con la virtualización de GPU, las capacidades de aislamiento de recursos son limitadas.

bf2388f79d2198fc7fae86c96aefda6c.png

La virtualización de GPU de hardware antes mencionada también es un método de implementación importante, pero es necesario agregar un módulo de interacción remota para administrar aplicaciones 3D. Su ventaja es un buen aislamiento y compatibilidad, pero la desventaja es que Nvidia cobra las licencias por separado para las máquinas virtuales.

db944fc28d5aa4acb9c931566b6feb22.png

A continuación, presentaremos los escenarios aplicables de varias soluciones. La elección de una solución de aplicación en la nube generalmente implica una fuerte intercomunicación de intranet (cuentas, permisos) y requisitos de compatibilidad de aplicaciones (2D, 3D de varios tipos); la elección de la representación en tiempo real de una aplicación 3D generalmente se centra en programas de representación 3D, como la visualización 3D basada en aplicaciones de desarrollo DirectX. , juegos, etc.; las soluciones de virtualización de hardware GPU/paso físico se utilizan generalmente junto con aplicaciones en la nube y aplicaciones 3D para renderizado en tiempo real.

Lo que las tecnologías anteriores tienen en común es que las aplicaciones 3D se mueven directamente a la nube para su cálculo, pero ¿puede el renderizado puro en la nube darse cuenta de que la aplicación no va a la nube, sino solo el renderizado?

45032055ce31bb08cbf2732027181024.png

Por lo tanto, hemos implementado una solución basada en la nube basada en la optimización nativa de la nube, es decir, la renderización remota. Es adecuado para aplicaciones 3D web, PC y móviles al mismo tiempo. La aplicación en realidad se ejecuta en el lado del cliente, pero el cálculo de renderizado se descarga, el renderizado se completa en la nube a través del SDK de renderizado remoto y la imagen final se envía de regreso al lado del cliente mediante codificación de video.

Su ventaja es que la nube solo realiza la función de renderizado, y la potencia informática en el lado del terminal puede completar otras operaciones lógicas. Combinado con la situación real del cliente, se puede seleccionar de manera flexible el renderizado local, en la nube o híbrido. La desventaja es que la aplicación debe modificarse en función del SDK de representación remota y no puede cumplir con los requisitos de escenarios de implementación interactivos muy altos (como algunos juegos).

7eceaa7d63a67e20f2136b0f27b8d922.png

La figura anterior muestra el proceso específico para que los usuarios utilicen el servicio de renderizado remoto. Después de activar el servicio y crear una sesión de renderizado en la nube, el SDK remoto controla el renderizado en la nube y la imagen renderizada se envía de vuelta al cliente para su visualización a través del servicio RTC de Huawei.

d85f9f40132eae8c5da7e237cfda2980.png

A continuación, demuestre el efecto de la renderización remota. En el modo tradicional, los diseñadores necesitan obtener representaciones a través de la representación fuera de línea antes de ver el efecto del diseño. Usando HUAWEI CLOUD Rendering, los diseñadores pueden ver el efecto del diseño en tiempo real, y el renderizado de trazado de rayos en la nube puede restaurar de manera más realista el entorno de iluminación en el sitio.

bca1869ffdc9c64f041c57379c3954bb.png

Entonces, ¿cuáles son las ventajas específicas de combinar renderizado y nube? En comparación con las tarjetas gráficas de consumo, el hardware utilizado en los centros de datos en la nube es muy caro, ¿qué beneficios aporta realmente ese alto coste? Como se muestra en la figura anterior, si considera la nube como una máquina grande, puede encontrar que la representación en la nube admite múltiples usuarios de diferentes tipos (teléfonos móviles, tabletas, hosts, etc.) al mismo tiempo y puede proporcionar una aplicación. que pueden ser utilizados por múltiples usuarios Escenas. Sus recursos de hardware no están vinculados al usuario, sino que están determinados por el tiempo de uso del usuario. Tampoco es necesario instalar el software localmente.

6f420f19aa06a009e0c419e241d1ff27.png

Las soluciones en la nube antes mencionadas para aplicaciones 3D consisten esencialmente en implementar programas locales en la nube. La nube sólo proporciona un sustituto de los recursos locales. Los recursos informáticos se programan según las conexiones y no se pueden compartir entre diferentes aplicaciones.

HUAWEI CLOUD ha realizado algunos nuevos intentos al transformar el motor de renderizado de desarrollo propio para acceso multiusuario, de modo que un solo motor pueda acceder a múltiples usuarios al mismo tiempo en la misma escena. Este método ahorra la memoria y la memoria de video cargadas en algunos escenas disfrazadas Y el cálculo compartido entre los usuarios puede ahorrar CPU y GPU. Como solución nativa de la nube que aprovecha al máximo las ventajas de la nube, es fundamentalmente diferente de las soluciones antes mencionadas. Después de pruebas reales, puede aumentar la eficiencia en más de 0,5 veces.

-06-

Práctica de renderizado de gráficos industriales

A continuación, presentaremos algunas de nuestras prácticas en el campo del renderizado de gráficos industriales. El motor de renderizado de gráficos industriales puede ser diferente del trabajo de renderizado con el que todos contactamos en la vida diaria: es diseño asistido por computadora (CAD), fabricación asistida por computadora (CAM), ingeniería asistida por computadora (CAE), modelado de información de construcción ( BIM) y otros programas de diseño industrial. Los componentes técnicos básicos determinan la presentación real de los objetos de diseño 3D y garantizan la exactitud del diseño frontal.

cc78bb926be220323a3fc427391ffb40.png

En la actualidad, hay una falta de motores de renderizado de gráficos industriales de alta calidad de desarrollo propio en China, y los motores de desarrollo propio de las principales empresas no pueden soportar el renderizado de gráficos de escenas grandes y de alta calidad. Los renderizadores de GPU relativamente conocidos en la industria son básicamente productos extranjeros (como KeyShot y HOOP, etc.).

Con el apoyo del Centro Nacional de Innovación Tecnológica, HUAWEI CLOUD lanzó un proyecto de investigación y desarrollo de motor de renderizado de gráficos industriales. El objetivo es producir un motor de renderizado que alcance el nivel avanzado mundial después de 2 a 3 años de desarrollo y satisfaga las necesidades de Escenarios CAD, CAE, CAM y EDA Necesidades de renderizado de gráficos.

800ed27001a54cb51a9b00b1a4861d2b.png

La imagen de arriba muestra el reciente efecto de renderizado en tiempo real de nuestra línea de renderizado industrial de desarrollo propio. En la actualidad, ha completado la integración y el acoplamiento con algunos fabricantes chinos de CAD 3D. En 2024, se implementará gradualmente el acoplamiento con otros diseños empresariales. software.

f6f64a65a6bc0173991802ebb2120a96.png

A continuación, demostraremos la representación en tiempo real del trazado de rayos en las nubes, que se centra en la presentación de materiales y efectos de luces y sombras.

-07-

Práctica de renderizado acelerado por IA

ece4dbf0c4ecd128e703d48cb9640754.png

Finalmente, presentaremos el renderizado fuera de línea acelerado por IA de HUAWEI CLOUD. Nuestra idea original era sustituir productos similares de la competencia mediante motores de renderizado de desarrollo propio, pero debido a las altas barreras ecológicas, esta idea no era viable.

El proceso de renderizado fuera de línea existente consiste en que la aplicación cliente envía datos gráficos a través del servicio de la granja y el buscador de la granja, determina el nodo informático y completa la renderización de los gráficos. Debido al alto consumo de cálculos de trazado de rayos en el proceso, el tiempo total requerido también es muy largo. Por lo tanto, esperamos acelerar el renderizado mediante la introducción de tecnología de IA, reducir el cálculo del renderizado con seguimiento de luz ajustando los parámetros del servicio agrícola, reduciendo así el cálculo del lado CG puro, y luego usar el modelo de IA patentado para realizar AI. Cálculo de inferencia en la salida de datos CG durante el proceso de renderizado. El efecto de salida puede alcanzar la misma calidad.

e6c3bf5d682bc79792033efc23b8fe7f.png

La figura anterior muestra el efecto de salida del renderizado acelerado de HUAWEI CLOUD AI. Se puede ver que la calidad de la salida de IA es básicamente la misma que la del renderizado nativo.

114bff3708f68528348c40b09be9a616.png

La imagen de arriba muestra un caso real de representación acelerada por IA de dramas de cine y televisión. Se puede ver que detalles como el cabello son básicamente los mismos que en la representación original, y cuanto mayores sean los requisitos de calidad, mejor será el efecto de aceleración.

A continuación se presenta un resumen de nuestro cronograma técnico. Desde 2011, nuestro desarrollo ha progresado desde el renderizado 2D hasta el renderizado en la nube espacial 3D de desarrollo propio, desde la virtualización de GPU hasta el motor de trazado de rayos y la aceleración del renderizado por IA. Las industrias involucradas incluyen oficinas corporativas, humanos digitales, cine y televisión, juegos en la nube, diseño industrial. , etc.

Nuestro equipo de I+D tiene una distribución global, depende de universidades y bases industriales de renombre mundial en el campo de los gráficos, y continúa cultivando tecnología de gráficos nativa de la nube para respaldar la actualización industrial.

352535cfb58c1b62da81efbfc3da7c96.png

A continuación, demostraremos nuestro video de renderizado fuera de línea de desarrollo propio, que es principalmente para escenas de diseño de decoración del hogar. La realidad de la luz y la sombra es más fuerte que el renderizado en tiempo real, y cada fotograma renderizado solo toma de 5 a 10 segundos.

80abf5b66b3ca0e92ab08d63bf5ce0c5.png

Finalmente, daremos una demostración en video de nuestro renderizado en tiempo real de desarrollo propio, que se basa en el motor de renderizado desarrollado por Huawei.

Creo que el renderizado es a la vez una tecnología y una herramienta que puede ayudar a los usuarios a lograr el efecto deseado. También espero tener intercambios profundos con todos los expertos aquí presentes. Eso es todo por compartir, ¡gracias a todos!


46d09a9a4de6ef73d07715fa5953b323.png

Escanee el código QR en la imagen o haga clic en " Leer el texto original " 

Acceso directo a LiveVideoStackCon 2023 Shenzhen Station 20% de descuento en el canal de compra de entradas

Supongo que te gusta

Origin blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/132485163
Recomendado
Clasificación