Render GPU vs CPU
Buenos días, me encuentro con un problema contradictorio para mi y agradezco de antemano que alguien pueda decirme qué pasa y como solucionarlo, si se puede.
Estoy renderizando una escena pesada en Cycles, en la barra de estado indica estos datos: Memoria: 6,07 GiB VRam:1.2/6.0 GiB (Con render CPU).
Inicialmente comencé el render con GPU, tengo una tarjeta GeForce GTX 1660 super. Con GPU, los datos de RAM que indica son 5.8 GiB/6.0
Estoy renderizando una animación para video. Esta animación consta de 363 frames y voy renderizando de 60 en 60 frames. Utilizando la GPU me encuentro que a medida que voy avanzando, la RAM que utiliza, también se incrementa hasta que llega a esos 5.8 GiB parando el render en el frame que ya supera los 6.0GiB i esto ocurre a los 7 u 8 frames.
Ahora estoy renderizando con la CPU y cosa curiosa, veo que utiliza menos Gb para la RAM, lo que me permite ir renderizando sin problemas además de poder seguir utilizando el PC en otras tareas.
Pero claro, el precio es que el render de un solo frame, lo hace en 40 minutos, así que 40 frames.
Mi pregunta es: ¿Puedo modificar algo en la GPU para que no use tantos GiB en la RAM?, aunque tarde un poco más.
Para completar la información: estoy renderizando imágenes de 1280x720 px.
Muchas gracias.
Hola, no sé si entendido bien lo que quieres hacer, pero más o menos te explico:
Lo primero que yo haría sería meterme en el
panel de control de Nvidia y agregar
Blender a la configuración 3d tal y como te muestro en la imagen
🖼️
Estamos trabajando para mostrar las imágenes del foro
Adjunto #243865
Si sabes de configuración puedes toquetear un poco los parámetros yo lo tengo todo para que el programa decida porque tampoco se mucho de configurar eso jejeje.
Pon otro lado en
Blender en el menú de preferencias también puedes elegir con que tipo de hardware hacer el render con
GPU o con
CPU y creo que hay una opción para limitar la memoria en el apartado de
Cuda donde pone
memory limits
🖼️
Estamos trabajando para mostrar las imágenes del foro
Adjunto #243866
No sé si esto es exactamente a lo que te referías, pero puedes ir probando, yo te aconsejo que antes de tocar nada
guardes las configuraciones de todo tal y como lo tienes ahora.
También te recomiendo que hagas los renders siempre con la
GPU aunque eso conlleve más tiempo, siempre puedes
programar el time del render y hacer otras cosas mientras, aunque como siempre digo si haces un render muy pesado sobre todo en
Cycles lo mejor es dejar al PC que trabaje sin meterle más caña así tardará menos y no tendrás errores.
Espero te haya servido, de todas maneras estate atento porque es posible que el amigo Solimán te ofrecerá una video respuesta que a lo mejor aclara más tus dudas.
:ole
-- IMÁGENES ADJUNTAS --
🖼️
Estamos trabajando para mostrar las imágenes del foro
Adjunto #243865
🖼️
Estamos trabajando para mostrar las imágenes del foro
Adjunto #243866
¿Y tiene que ser el Render en Cycles?
Para según que tipo de render puedes utilizar Eevee que es muchísimo más rápido.
Haz un render de una imagen en Cycles y otra en Eevee y mira a ver si hay mucha diferencia.
A no ser que estes con reflejos, pelo, cristal, etc... :(
[QUOTE=pics3dtricks;1011530]Hola, no sé si entendido bien lo que quieres hacer, pero más o menos te explico:
Lo primero que yo haría sería meterme en el panel de control de Nvidia y agregar Blender a la configuración 3d tal y como te muestro en la imagen
[ATTACH=CONFIG]243865[/ATTACH]
Si sabes de configuración puedes toquetear un poco los parámetros yo lo tengo todo para que el programa decida porque tampoco se mucho de configurar eso jejeje.
Pon otro lado en Blender en el menú de preferencias también puedes elegir con que tipo de hardware hacer el render con GPU o con CPU y creo que hay una opción para limitar la memoria en el apartado de Cuda donde pone memory limits
No sé si esto es exactamente a lo que te referías, pero puedes ir probando, yo te aconsejo que antes de tocar nada guardes las configuraciones de todo tal y como lo tienes ahora.
También te recomiendo que hagas los renders siempre con la GPU aunque eso conlleve más tiempo, siempre puedes programar el time del render y hacer otras cosas mientras, aunque como siempre digo si haces un render muy pesado sobre todo en Cycles lo mejor es dejar al PC que trabaje sin meterle más caña así tardará menos y no tendrás errores.
Espero te haya servido, de todas maneras estate atento porque es posible que el amigo Solimán te ofrecerá una video respuesta que a lo mejor aclara más tus dudas.
:ole[/QUOTE]
Muchas gracias por tu rápida respuesta, probare tus recomendaciones y a ver qué pasa. Siempre lo hago con la GPU pero en renders pesados me ocurre esto, que usa prácticamente toda la RAM de la tarjeta hasta que se para. En cambio con la CPU no pasa eso, usa poca RAM pero renderiza horas y horas y horas.
Muy agradecida.
[QUOTE=Soliman;1011533]¿Y tiene que ser el Render en Cycles?
Para según que tipo de render puedes utilizar Eevee que es muchísimo más rápido.
Haz un render de una imagen en Cycles y otra en Eevee y mira a ver si hay mucha diferencia.
A no ser que estes con reflejos, pelo, cristal, etc... :([/QUOTE]
Gracias también por el interés en resolver mi problema. El caso es que sí, hay muchísima diferencia porque tengo todo eso, reflejos, agua, cristal, pelo y también simulación de fuego. Es una escena de un peristilo romano, con mucha malla y físicas. Debo hacerlo sí o sí en Cycles.
Muchas gracias y muy buen día.
Si no hay mas remedio que hacerlo en Cycles pues tal vez deberías simplificar un poco más la escena.
Bajar la cantidad de vértices, o reducir el tamaño de las texturas, etc.
Pero si hay fuego y todo lo que has dicho me parece que va a ser difícil... :(
Si no tienes mas remedio que hacerlo en Cycles puedes utilizar el Denoising Data para reducir el tiempo de render, con esto se reduce también la calidad, pero sigue siendo muchísima mejor calidad que en Eevee.
Te hice un video explicativo a ver si te vale.
[video=youtube_share;XQfZBIaXXk0]https://youtu.be/XQfZBIaXXk0[/video]
Muchas gracias a los dos y en especial por el video. Intentaré tocar esos parámetros que me aconsejas, excepto las mallas que ya las reduje todo lo posible hasta evitar la deformidad (hay bastantes columnas acanaladas con volutas). Creo que aplicando esas pequeñas modificaciones en la configuración podré recuperar algo y si no... paciencia y renderizado nocturno. :-D
Pics3DTricks, ya tienes una nueva subscriptora. ;)
[QUOTE=Titus;1011542]Pics3DTricks, ya tienes una nueva subscriptora. ;)[/QUOTE]
❤️
No hay de que!!
Pero tienes que tener en cuenta que el render en Cycles siempre es muy pesado, sobre todo todo lo que tú quieres renderizar ya que lleva muchos elementos y texturas, y también depende del hardware que tengas.
Como bien dices lo mejor es render nocturno para ese tipo de cosas, yo que tu lo programaría si lo vas a dejar por la noche, hay una opción en el render para eso, porque a veces en Cycles se le va la olla si el render es muy largo y se puede quedar renderizando toda la noche aunque la animación haya terminado.
[QUOTE=pics3dtricks;1011545]No hay de que!!
Pero tienes que tener en cuenta que el render en Cycles siempre es muy pesado, sobre todo todo lo que tú quieres renderizar ya que lleva muchos elementos y texturas, y también depende del hardware que tengas.
Como bien dices lo mejor es render nocturno para ese tipo de cosas, yo que tu lo programaría si lo vas a dejar por la noche, hay una opción en el render para eso, porque a veces en Cycles se le va la olla si el render es muy largo y se puede quedar renderizando toda la noche aunque la animación haya terminado.[/QUOTE]
Pues efectivamente, debo seguir con renders nocturnos. He realizado los cambios de configuración que me recomiendas y ha mejorado un poco pero no para poder hacer renders en tiempos aceptables. El Hardware lo cambié hace muy poco y a raíz precisamente de este proyecto que comencé en un PC portátil y no lo he quemado por pura suerte, creo.
Lo que me sigue intrigando es por qué cuando uso la GPU utiliza casi la totalidad de capacidad de la tarjeta, con lo que a los pocos frames, 6 o 7, colapsa y finaliza el render y cuando cambio las opciones de recursos para render a "Ninguno", la RAM que utiliza es muy inferior, a penas pasa de 1 Gb, y puedo renderizar sin problemas, incluso puedo seguir usando el ordenador para otras tareas y con fluidez. Pero al coste de un tiempo dilatadísimo, pongo un par de imágenes para ilustrar esto, la primera es con CPU y la segunda con la GPU.
Al final he optado por seguir con configuración CPU para poder culminar el video y cuando haga otros renders menos exigentes cambiar a GPU. Mis medios son aceptables pero no profesionales.
Y de nuevo muchas gracias por las ayudas y por mantener esta web tan útil para los que nos hemos aficionado a este arte y que como yo, lo hacemos sin ninguna base ni formación previa en diseño y mucho menos en 3D.
-- IMÁGENES ADJUNTAS --
🖼️
Estamos trabajando para mostrar las imágenes del foro
Adjunto #243874
🖼️
Estamos trabajando para mostrar las imágenes del foro
Adjunto #243875
[QUOTE=Titus;1011584]Pues efectivamente, debo seguir con renders nocturnos. He realizado los cambios de configuración que me recomiendas y ha mejorado un poco pero no para poder hacer renders en tiempos aceptables. El Hardware lo cambié hace muy poco y a raíz precisamente de este proyecto que comencé en un PC portátil y no lo he quemado por pura suerte, creo.
Lo que me sigue intrigando es por qué cuando uso la GPU utiliza casi la totalidad de capacidad de la tarjeta, con lo que a los pocos frames, 6 o 7, colapsa y finaliza el render y cuando cambio las opciones de recursos para render a "Ninguno", la RAM que utiliza es muy inferior, a penas pasa de 1 Gb, y puedo renderizar sin problemas, incluso puedo seguir usando el ordenador para otras tareas y con fluidez. Pero al coste de un tiempo dilatadísimo, pongo un par de imágenes para ilustrar esto, la primera es con CPU y la segunda con la GPU.
Al final he optado por seguir con configuración CPU para poder culminar el video y cuando haga otros renders menos exigentes cambiar a GPU. Mis medios son aceptables pero no profesionales.
Y de nuevo muchas gracias por las ayudas y por mantener esta web tan útil para los que nos hemos aficionado a este arte y que como yo, lo hacemos sin ninguna base ni formación previa en diseño y mucho menos en 3D.[/QUOTE]
¿Pero el renderizado son 18 fotogramas solamente?
Se me ocurren otras cosillas qué puedes hacer para minimizar un poco el uso de la Vram.
Lo primero, aunque resulte evidente antes de hacer el render tienes que poner el Viewport en en modo sólido, eso le quita trabajo a Blender y reduce la Vram, no se si ya lo hacías así pero se nota algo, fíjate en la diferencia.
Luego puedes "limitar el tamaño de las texturas", que algunas depende de donde las hayas sacado son demasiado grandes, por defecto Blender no le pone limite, puedes hacerlo una por una en el UV editing por si hay algunas que te interesa cambiar y otras no, por lo que sea. O también puedes hacerlo en la opción simplify del render.
Con eso y con lo que te dije ayer del denoising data algo mejoras, pero como ya hemos dicho hay ocasiones que por mucho que hagas es inevitable que el render tarde horas, sobre todo si quieres calidad.
Es que debes decidir entre si quieres calidad o rapidez, creo que tienes la idea al contrario, para renders exigentes como tu dices hay que usar Cycles y GPU y para renders que te den un poco igual o sean pruebas puedes usa Eevee o CPU.
Te dejo un video para que lo veas más o menos.
[video=youtube_share;VpF9KSVgi1A]https://youtu.be/VpF9KSVgi1A[/video]
Edito: Una pregunta por curiosidad...tienes que hacer el render en Cycles por algún motivo especial? ¿es decir, es para algún trabajo o cliente o algo así? lo digo porque en Eevee también se pueden conseguir resultados muy realistas si sabes configurar los parámetros del render y añadir algunas cosillas. Así tardarías menos.
Si tengo tiempo, me animo y hago un tutorial de render en Eevee (2022) para el foro:-P
[QUOTE=pics3dtricks;1011588]Pero el renderizado son 18 fotogramas solamente?[/QUOTE]
La animación total consta de 365 frames però para controlar tanto los tiempos como para evitar el colapso voy procesando lotes de 60 frames. Pero ocurre que utilizando la GPU, cuando llevo unos 3 lotes, 180 o pocos más frames procesados va colapsando más pronto y tengo que reducir el tamaño de esos lotes a 20, e incluso 6 o 7 frames. Creo que debe ser un problema de caché que cuando se procesa con la GPU va acumulando información de toda la animación aunque se haga en partes. Procesando con la CPU no he detectado que me ocurra esto.
[QUOTE=pics3dtricks;1011590]Se me ocurren otras cosillas qué puedes hacer para minimizar un poco el uso de la Vram.
Lo primero, aunque resulte evidente antes de hacer el render tienes que poner el Viewport en en modo sólido, eso le quita trabajo a Blender y reduce la Vram, no se si ya lo hacías así pero se nota algo, fíjate en la diferencia.
Luego puedes "limitar el tamaño de las texturas", que algunas depende de donde las hayas sacado son demasiado grandes, por defecto Blender no le pone limite...puedes hacerlo una por una en el UV editing por si hay algunas que te interesa cambiar y otras no, por lo que sea. O también puedes hacerlo en la opción simplify del render.
Con eso y con lo que te dije ayer del denoising data algo mejoras, pero como ya hemos dicho hay ocasiones que por mucho que hagas es inevitable que el render tarde horas, sobre todo si quieres calidad.
Es que debes decidir entre si quieres calidad o rapidez, creo que tienes la idea al contrario. :) Para renders exigentes como tu dices hay que usar Cycles y GPU y para renders que te den un poco igual o sean pruebas puedes usa Eevee o CPU.
Te dejo un video para que lo veas mas o menos.
[URL]https://mega.nz/file/9g1hRTIJ#Iqm7gaGQiI74V-C8ZJm2wAFQlsBdo5O7Sm-096rEb8g[/URL]
Edito: Una pregunta por curiosidad...tienes que hacer el render en Cycles por algún motivo especial? es decir, es para algún trabajo o cliente o algo así? lo digo porque en Eevee también se pueden conseguir resultados muy realistas si sabes configurar los parámetros del render y añadir algunas cosillas. Así tardarías menos.
Si tengo tiempo, me animo y hago un tutorial de render en Eevee (2022) para el foro:-P[/QUOTE]
Pues te agradeceré muchísimo ese tutorial. Con Eevee no me salgo nada bien, no sé como arreglarlo para que me salgan las texturas en sus tonos y efectos buscados. El cristal, por ejemplo, no consigo que me salga transparente. Creo haber leído por algún sitio que con Eevee no es posible, tampoco me salen los tonos de los colores como son en sus imágenes reales ni los reflejos de las luces, algo muy buscado en mis composiciones, simplemente no las veo.
Así que encantada de poder aprender un poco más con el tutorial de Eevee. Mientras me miro tu video y aprendo. No soy profesional, trabajo solo por afición y soy muy exigente con las calidades finales. Para mi esta actividad es arte y busco el placer en la observación de los proyectos finales.
Un saludo y que tengas muy buen día.
[video=youtube_share;JYyUMMboZFk]https://youtu.be/JYyUMMboZFk[/video]
[QUOTE=Titus;1011594]Pues te agradeceré muchísimo ese tutorial. Con Eevee no me salgo nada bien, no sé como arreglarlo para que me salgan las texturas en sus tonos y efectos buscados. El cristal, por ejemplo, no consigo que me salga transparente. Creo haber leído por algún sitio que con Eevee no es posible, tampoco me salen los tonos de los colores como son en sus imágenes reales ni los reflejos de las luces, algo muy buscado en mis composiciones, simplemente no las veo.
Así que encantada de poder aprender un poco más con el tutorial de Eevee. Mientras me miro tu video y aprendo. No soy profesional, trabajo solo por afición y soy muy exigente con las calidades finales. Para mi esta actividad es arte y busco el placer en la observación de los proyectos finales.
Un saludo y que tengas muy buen día.[/QUOTE]
Si con, Eevee es posible renderizar todo eso lo único es que en Eevee tienes que ser tu la que vaya ajustando los parámetros del render para según que cosas se vayan a renderizar (materiales, transparencias, luces, reflejos), pero claro, no va a quedar igual de bien o realista que en Cycles, aun así ya te digo que toqueteando en Eevee te puede quedar muy chulo.
[QUOTE=pics3dtricks;1011597]Si con, Eevee es posible renderizar todo eso lo único es que en Eevee tienes que ser tu la que vaya ajustando los parámetros del render para según que cosas se vayan a renderizar (materiales, transparencias, luces, reflejos), pero claro, no va a quedar igual de bien o realista que en Cycles, aun así ya te digo que toqueteando en Eevee te puede quedar muy chulo.[/QUOTE]
Gracias Pics, lo probaré, pero sigo siendo una fan de los resultados con Cycles. ;)