RhinoCycles: collecting available devices and render results

AddNote For the render test to be successful a new WIP is needed. Once you can see the RhinoCycles_ListDevices command you have recent WIP that has necessary fixes for renders to complete correctly. EndNote

original message starts here :slight_smile:

I’d like to compile a list of devices that are used with RhinoCycles along with information whether a render was successful or not.

Upon plugin initialization a device list is printed to the output of the Rhino command-line (also visible through _CommandHistory). If you had RhinoCycles as your current render engine when closing, this would be printed to the command-line on starting Rhino. If not, select it from the Render > Current Renderer menu. You should see the plugin being loaded and initialized.

The output looks like

RhinoCommon successfully loaded D:\Dev\Rhino\V6\src4\bin\Debug\Plug-ins\RhinoCycles.rhp
Looking for .cubins in .\Plug-ins\RhinoCycles\lib
We have 2 devices
----------
	Device 0: CPU > Intel Core i5-2500 CPU @ 3.30GHz > 0 | False | True | False | CPU
	Device 1: CUDA_0 > GeForce GT 420 > 0 | False | True | False | CUDA
----------
  Plugin version = 6.0.15044.5490

It’d be very useful if users could reply with this bit of information copied from their command-line.

Please also open the attached 3dm file (45.9 KB) and paste the output of the _Render command.

Command: Render
Processing light table
Processing geometry table
Rendering time: 0d 00h 00m 00s
Rendering started!
Using device CUDA_0 GeForce GTX 760
Session 0
Session 0 start
Session 0 finished in 00:00:00.8780000
Slowest 44.0025, fastest 44.0025, average 44.0025

Feel free to attach resulting render of the simple pyramid and block, but the most important information is whether the render was successful or not. If your render with a CUDA card turns up black, please also rerender on the CPU (Use RhinoCycles_SetDebugOptions command to toggle the render device to CPU from CUDA) and paste the info for your CPU render as well.

Thanks!

/Nathan jesterKing Letwory

Note: If you can’t find this then with the next WIP update you should find the new command I’ve added: RhinoCycles_ListDevices.

Its output is almost identical, it looks like

We have 2 devices
----------
	Device 0: CPU > Intel Core i5-2500 CPU @ 3.30GHz > 0 | False | True | False | CPU
	Device 1: CUDA_0 > GeForce GT 420 > 0 | False | True | False | CUDA
----------

simple_test_for_collecting_info.3dm (45.9 KB)

edit add the attachment too :slight_smile:

I’ll start as a template:

Devices

We have 2 devices
----------
	Device 0: CPU > AMD A10-6800K APU with Radeon(tm) HD Graphics > 0 | False | True | False | CPU
	Device 1: CUDA_0 > GeForce GTX 760 > 0 | False | True | False | CUDA
----------

Render output

Command: Render
Processing light table
Processing geometry table
Using device CUDA_0 GeForce GTX 760
Rendering time: 0d 00h 00m 00s
Rendering started!
Session 0
Session 0 start
Session 0 finished in 00:00:00.7390000
Slowest 47.0027, fastest 47.0027, average 47.0027

Final image (draft quality)

Devices

We have 2 devices

Device 0: CPU > Intel Core i7-4900MQ CPU @ 2.80GHz > 0 | False | True | False | CPU
Device 1: CUDA_0 > Quadro K3100M > 0 | False | True | False | CUDA

Render output
Command: Render Processing light table Processing geometry table Using device CUDA_0 Quadro K3100M Rendering time: 0d 00h 00m 00s Rendering started! Session 0 Session 0 start Session 0 finished in 00:00:00.3430000 Slowest 6.0004, fastest 6.0004, average 6.0004
Final image (draft quality)

different PC…
Devices

We have 2 devices

Device 0: CPU > Intel Core i7-4710HQ CPU @ 2.50GHz > 0 | False | True | False | CPU
Device 1: CUDA_0 > GeForce GTX 860M > 0 | False | True | False | CUDA

Render output
Command: Render Processing light table Processing geometry table Rendering time: 0d 00h 00m 00s Rendering started! Using device CUDA_0 GeForce GTX 860M Session 0 Session 0 start Session 0 finished in 00:00:00.4310000 Slowest 15.6262, fastest 15.6262, average 15.6262 Rendering stopped. The render window can be closed safely.
But the echo to the command line seems to be different when run again.. (at least the order of the wording)
Command: Render Processing light table Processing geometry table Using device CUDA_0 GeForce GTX 860M Rendering time: 0d 00h 00m 00s Rendering started! Session 0 Session 0 start Session 0 finished in 00:00:00.3340000 Slowest 15.6123, fastest 15.6123, average 15.6123
Final image (draft quality)

Hi Nathan, I appreciate this development! I think there is something wrong with this test?!?

I’ve turned on the grundplane and sun to see something in the render. It is upside down.

However here are my results:

We have 2 devices
Device 0: CPU > Intel Core i7-3840QM CPU @ 2.80GHz > 0 | False | True | False | CPU
Device 1: CUDA_0 > Quadro K3000M > 0 | False | True | False | CUDA

Command: Render
Processing light table
Processing geometry table
Using device CUDA_0 Quadro K3000M
Rendering time: 0d 00h 00m 00s
Rendering started!
Session 0
Session 0 start
Session 0 finished in 00:00:00.5790000
Slowest 15.6, fastest 15.6, average 15.6
Rendering stopped. The render window can be closed safely.

Ah yes, I forgot that to be able to get proper render with the custom 256x256 size one needs the latest SVN. With the next WIP update that should be all in.

Most important until then is to get the device info. Thanks!

edit: I’ve updated the original message to warn for WIP version inconsistency.

Devices
Looking for .cubins in …\Plug-ins\RhinoCycles\lib
We have 2 devices

Device 0: CPU > Intel Core2 Quad CPU    Q6600  @ 2.40GHz > 0 | False | True | False | CPU
Device 1: CUDA_0 > GeForce GTX 460 > 0 | False | True | False | CUDA

Render output

Command: _Render
Processing light table
Processing geometry table
Rendering time: 0d 00h 00m 00s
Rendering started!
Using device CUDA_0 GeForce GTX 460
Session 0
Session 0 start
Session 0 finished in 00:00:00.2400000
Slowest 0, fastest 0, average 0

Final image

Setting the viewport to Rendered also looks strange on my setup.
Driver version 347.25

I see there is a new driver version, 347.52. I’ll try it and see if that makes a difference.

Rendered viewport isn’t yet implemented, and not relevant to the intent of this thread :slight_smile: (collect data on devices)

Ok, I posted the info on the device in my previous post. The render was black with my GTX 460. Is there anymore info I can provide that would help?

At the moment not really, I need to ponder the possible reasons first before I can ask for more information. One thing you could do is check if rendering works OK with the CPU (use RhinoCycles_SetDebugOptions, set use_cpu to CPU, don’t forget to press enter to complete the command). Then render again. You should see something similar to what @wim posted. More than black anyway.

edit actually, there is one thing you could try for me: Download latest Blender (zip should be enough), start it, change compute devices to CUDA through user preferences > system. Then set render engine to Cycles, set in render properties render device to GPU and see if the default scene (the cube) renders ok.

Here are the results from CPU render:
Looking for .cubins in …\Plug-ins\RhinoCycles\lib
We have 2 devices

Device 0: CPU > Intel Core2 Quad CPU    Q6600  @ 2.40GHz > 0 | False | True | False | CPU
Device 1: CUDA_0 > GeForce GTX 460 > 0 | False | True | False | CUDA

Command: _Open
Name of the file to open ( UpdatePromptUpdateBlocks=Yes Browse ): “F:\Allway Sync\x_Download\Rhino3D\WIP 6\simple_test_for_collecting_info.3dm”
File “F:\Allway Sync\x_Download\Rhino3D\WIP 6\simple_test_for_collecting_info.3dm” successfully read
Command: _Paste
Command: RhinoCycles_SetDebugOptions
Set Debug Options <100> ( use_cpu=CUDA use_gi=NoGi use_bglight=NoBgLight spotlight_factor=0.1 pointlight_factor=0.1 sunlight_factor=1 arealight_factor=1 ): use_cpu=CPU
Command: _Render
Processing light table
Processing geometry table
Rendering time: 0d 00h 00m 00s
Rendering started!
Using device CPU Intel Core2 Quad CPU Q6600 @ 2.40GHz
Session 0
Session 0 start
Session 0 finished in 00:00:03.9790000
Slowest 23.0013, fastest 11.0006, average 14.2508
Rendering stopped. The render window can be closed safely.

I was actually checking the Cycles renderer in Blender before I read your response. It worked OK set to GPU.

Ok thanks. I’ll work on a command for Even More Diagnostics.

Finally got around to test my computer at home. Here’s the info:

Looking for .cubins in …\Plug-ins\RhinoCycles\lib
We have 2 devices

Device 0: CPU > Intel Core i7-3770K CPU @ 3.50GHz > 0 | False | True | False | CPU
Device 1: CUDA_0 > GeForce GTX 660 > 0 | False | True | False | CUDA

Current render plug-in set to “RhinoCycles”
Command: _Render
Processing light table
Processing geometry table
Rendering time: 0d 00h 00m 00s
Rendering started!
Using device CUDA_0 GeForce GTX 660
Session 0
Session 0 start
Session 0 finished in 00:00:00.2630000
Slowest 9.0067, fastest 9.0067, average 9.0067

printout at startup

Looking for .cubins in ..\Plug-ins\RhinoCycles\lib
We have 1 device
----------
	Device 0: CPU > Intel Core i7-4700MQ CPU @ 2.40GHz > 0 | False | True | False | CPU
----------

Render output
Command: _Render
Processing light table
Processing geometry table
Rendering time: 0d 00h 00m 00s
Rendering started!
Using device CPU Intel Core i7-4700MQ CPU @ 2.40GHz
Session 0
Session 0 start
Session 0 finished in 00:00:01.3710000
Slowest 8.0009, fastest 0, average 0.12501171875

Final image

The results of my test render

Joao

Ok, great, the updated wip has the necessary changes :smile:

No solution yet for cards that don’t render properly (unless they start rendering suddenly after all)

Hi Nathan,

Can you elaborate a little about the advantages of a CUDA card?
How much faster would a CUDA be compared to rendeing on a CPU?
I realize there is no way to give useful numbers as systems vary so much, but maybe there is still something to say on how the speeds differences relate to eachother?

Thansk
Willem

This pretty much depends on the type of card you have, but with even a decent gaming card you should see quite some speed gain.

Below I paste three render sessions of the same scene. First on GPU, then twice on CPU (one thread, 4 threads).

Looking for .cubins in ..\Plug-ins\RhinoCycles\lib
We have 2 devices
----------
	Device 0: CPU > AMD A10-6800K APU with Radeon(tm) HD Graphics > 0 | False | True | False | CPU
	Device 1: CUDA_0 > GeForce GTX 760 > 0 | False | True | False | CUDA
----------
Loading Rhino Render, version 1.50, Feb 17 2015, 10:36:06
File "N:\jesterHouse2.3dm" successfully read
Command: Render
Processing light table
Processing geometry table
Rendering time: 0d 00h 00m 00s
Rendering started!
Using device CUDA_0 GeForce GTX 760
Session 0
Session 0 start
Session 0 finished in 00:00:12.0160000
Slowest 26.0015, fastest 4.0002, average 6.91705277777778
Rendering stopped. The render window can be closed safely.
Command: RhinoCycles_SetDebugOptions
Set Debug Options <100> ( use_cpu=CUDA  use_gi=NoGi  use_bglight=NoBgLight  spotlight_factor=0.1  pointlight_factor=0.1  sunlight_factor=1  arealight_factor=1 ): use_cpu=CPU
Command: RhinoCycles_SetThreads
Set CPU render threads (max 4, 0 for automatic) <0>: 1
User wants 1 CPU threads
Command: Render
Processing light table
Processing geometry table
Rendering time: 0d 00h 00m 00s
Using device CPU AMD A10-6800K APU with Radeon(tm) HD Graphics
Rendering started!
Session 0
Session 0 start
Session 0 finished in 00:05:02.2910000
Slowest 189.0109, fastest 0, average 0.600354830128199
Rendering stopped. The render window can be closed safely.
Command: RhinoCycles_SetThreads
Set CPU render threads (max 4, 0 for automatic) <1>: 4
User wants 4 CPU threads
Command: Render
Processing light table
Processing geometry table
Using device CPU AMD A10-6800K APU with Radeon(tm) HD Graphics
Rendering time: 0d 00h 00m 00s
Rendering started!
Session 0
Session 0 start
Session 0 finished in 00:01:44.1890000
Slowest 176.01, fastest 0, average 0.609532505886961
Rendering stopped. The render window can be closed safely.

As you can see, even against a 4-thread CPU render the GPU is MUCH faster. Even with less powerful CUDA cards the speed gain will be obvious.

<edit> I’d do the same procedure on my other machine with the GeForce GT 420, but that’s currently got lots of work on interactive rendering for RhinoCycles, and I’d rather not mess that up. </edit>

Just for completeness I attach the scene that I used. It’s a little something I work on to learn use Rhino, so go easy on that part :wink: (and it’ll evolve into something better looking over time…)

jesterHouse2.3dm (1.1 MB)

Thanks for elaborating on that!
It will be some time before I need a new system but I guess as V6 will have Cycles build in, I will lean to getting a Nvidia card for it.

Great work!
-Willem