boberfly / GafferCycles

Cycles for Gaffer
BSD 3-Clause "New" or "Revised" License
85 stars 10 forks source link

can't select GPU #54

Closed willDTF closed 3 years ago

willDTF commented 4 years ago

hi, in cyclesOption nodes, I can see both cuda and optix options in "device" choice but both are not selectable I've tried to install cuda, like for older version, it's make no changes, I'm still not able to select gpu rendering If I put device on "Multi", then I can select my 7 GPU in Multidevice settings but the render crash gaffer with segmentation fault WARNING : MeshAlgo : Variable "N" has unsupported interpolation type - not generating normals. E1003 10:50:04.943858 174090 bvh.cpp:122] Requested unsupported BVH layout. any idea why ?

specs: OS : Centos 7.8 NVIDIA Drivers : 450.80.02 - Cuda version 11.0 gafferCycles 0.22.0 gaffer 0.58.1.0

willDTF commented 4 years ago

I've tried both BHV2 and EMBREE in bhv settings

boberfly commented 4 years ago

Hi @Kaiz3rTool

I don't have an Nvidia card currently in a convenient way to test this so no ETA, but all the kernels are built and packaged for Cycles to detect and use without needing Cuda installed, and I am not seeing anything obvious that has changed since the previous version of Cycles in this regard.

BVH setting shouldn't be needed here, but BVH2 is what GPUs should use automatically. Is this choosing device or multi-device? Multi-device needs revisiting eventually when I have the hardware to test.

Cheers

willDTF commented 4 years ago

hi, the strange things is that cards are detected as I see it in device but i can't select them as both CUDA or OPTIX device

it's in multidevice as I can't select cuda or optix in device I made more tests, if in multidevice : selecting CUDA or OPTIX for each gpu and deselect CPU : it doesn't render

Optix denoising doesn't works so I guess there is some trouble with device or optix ERROR : Cycles : Denoiser type not supported by compute device

cheers

boberfly commented 4 years ago

Can you just test from Session->Device just the GPU itself and not multi-device, does that work? I don't have the hardware here to get multi-device to work smoothly, someone else will need to send patches in or I get the hardware somehow.

boberfly commented 4 years ago

The denoise thing is new code to manage different device render/denoise compatibility eg. CPU render + Optix denoise, I've got some code which might solve that one that I found was added to the Blender addon, just I can't test it locally.

willDTF commented 4 years ago

hey, I can't as the GPU is greyed image

If it's helps, I can maybe create remote login on my server to let you test. I need to see how it's doable to us to be certain the problem is not from our server, I've tried in blender and with blender benchmark, both cuda and optix works as expected

boberfly commented 4 years ago

That is strange, never seen the UI have those greyed out before. Can you run this in the script editor for me?

import GafferCycles

for device in GafferCycles.devices:
    print("Type: %s - ID: %s" % (device["type"], device["id"]))

Also is that an existing CyclesOptions node in a loaded scene? Can you try re-creating that node to see if that fixes things?

willDTF commented 4 years ago

here is the log from the command

Type: CUDA - ID: CUDA_GeForce RTX 2080 Ti_0000:1a:00 Type: CUDA - ID: CUDA_GeForce RTX 2080 Ti_0000:1b:00 Type: CUDA - ID: CUDA_GeForce RTX 2080 Ti_0000:3d:00 Type: CUDA - ID: CUDA_GeForce RTX 2080 Ti_0000:88:00 Type: CUDA - ID: CUDA_GeForce RTX 2080 Ti_0000:89:00 Type: CUDA - ID: CUDA_GeForce RTX 2080 Ti_0000:b1:00 Type: CUDA - ID: CUDA_GeForce RTX 2080 Ti_0000:b2:00 Type: OPTIX - ID: CUDA_GeForce RTX 2080 Ti_0000:1a:00_OptiX Type: OPTIX - ID: CUDA_GeForce RTX 2080 Ti_0000:1b:00_OptiX Type: OPTIX - ID: CUDA_GeForce RTX 2080 Ti_0000:3d:00_OptiX Type: OPTIX - ID: CUDA_GeForce RTX 2080 Ti_0000:88:00_OptiX Type: OPTIX - ID: CUDA_GeForce RTX 2080 Ti_0000:89:00_OptiX Type: OPTIX - ID: CUDA_GeForce RTX 2080 Ti_0000:b1:00_OptiX Type: OPTIX - ID: CUDA_GeForce RTX 2080 Ti_0000:b2:00_OptiX Type: CPU - ID: CPU Type: MULTI - ID: MULTICUDA_GeForce RTX 2080 Ti_0000:1a:00CUDA_GeForce RTX 2080 Ti_0000:1b:00CUDA_GeForce RTX 2080 Ti_0000:3d:00CUDA_GeForce RTX 2080 Ti_0000:88:00CUDA_GeForce RTX 2080 Ti_0000:89:00CUDA_GeForce RTX 2080 Ti_0000:b1:00CUDA_GeForce RTX 2080 Ti_0000:b2:00CUDA_GeForce RTX 2080 Ti_0000:1a:00_OptiXCUDA_GeForce RTX 2080 Ti_0000:1b:00_OptiXCUDA_GeForce RTX 2080 Ti_0000:3d:00_OptiXCUDA_GeForce RTX 2080 Ti_0000:88:00_OptiXCUDA_GeForce RTX 2080 Ti_0000:89:00_OptiXCUDA_GeForce RTX 2080 Ti_0000:b1:00_OptiXCUDA_GeForce RTX 2080 Ti_0000:b2:00_OptiXCPU

I have tried to recreate the node a couple of times or open it in different older scene, still greyed

boberfly commented 4 years ago

Alright I think I know what it might be, just simply a huge amount of the same card (nice setup!)

https://github.com/boberfly/GafferCycles/blob/master/python/GafferCyclesUI/CyclesOptionsUI.py#L471

On this line in python, can you change:

    for device in GafferCycles.devices :
        presetNames.append( "%s - %s" % ( device["type"], device["description"] ) )

To:

    index = 0
    for device in GafferCycles.devices :
        presetNames.append( "%02i - %s - %s" % ( index, device["type"], device["description"] ) )
        index += 1

And see if the box isn't greyed out but rather lists all of your cards?

Cheers

willDTF commented 4 years ago

hey, thanks for the fix, not greyed anymore and it's work nicely with both Optix and Cuda all cards are listed as in multidevice,

yeah this server is quite funny, next step is to founda way to render on all GPUs on deadline :) Thanks !

boberfly commented 4 years ago

Re-opening until I patch the source code ;)