View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0024317 | Open CASCADE | OCCT:Visualization | public | 2013-11-05 15:02 | 2014-11-10 20:11 |
Reporter | kgv | Assigned To | kgv | ||
Priority | low | Severity | feature | ||
Status | closed | Resolution | no change required | ||
Platform | A | OS | L | ||
Product Version | 6.7.0 | ||||
Summary | 0024317: TKOpenGl, Ray Tracing - provide support for CPU OpenCL devices | ||||
Description | Current implementation requires GPU device from active OpenGL context to be used for Ray Tracing OpenCL cores. Whilst run-time Ray Tracing is unreachable on modern CPUs, it is still useful to support such rendering in some scenarios such as snapshot-making and regression testing in virtual environments. | ||||
Tags | No tags attached. | ||||
Test case number | |||||
|
Now CPU OpenCl devices are supported. The call of the command "vcldevices" allows to know the list of available OpenCL devices. The "vraytrace" command can be used as earlier (vraytrace 0|1) and in this case the OpenCL device will be defined automatically (as current OpenGL device if it is available or the first available OpenCL device otherwise). And with indication of the device number (for example, "vraytrace 1 device=2"). Current implementation was tested on next systems: - AMD Athlon II Neo K145 Processor 1,8 GHz, 1 core, OpenCL 1.2; - AMD Athlon II X4 640 Processor 3.0 GHz, 4 core, OpenCL 1.2; - Intel Core i5 CPU 2,67 GHz, 4 cores, OpenCL 1.2; And while it was not tested on Intel Graphics due to its absence. Supported hardware for Intel OpenCL can be found here: http://software.intel.com/en-us/articles/intel-sdk-for-opencl-applications-2013-release-notes. Some moments for raytracing on Intel CPU: 1) General crashes on Intel CPU were fixed but apparently not all. Occasionally the application crashes during rotation of objects. 2) According to Writing Optimal OpenCL™ Code with Intel® OpenCL SDK (see http://software.intel.com/sites/default/files/m/d/4/1/d/8/Writing_Optimal_OpenCL_28tm_29_Code_with_Intel_28R_29_OpenCL_SDK.pdf the point 2.8) it is recommended letting the OpenCL implementation to automatically determine the optimal work-group size (sometimes referred as “local work size”) for a given kernel. Simply pass NULL for a pointer to the local work size when calling clEnqueueNDRangeKernel. But in this case the application crashes. The experiment was executed with a work-group sizes (local group sizes) from 1 to 2 for x and from 1 to 64 for y (the application crashes if the x local group size is greater than 2). The optimal values without antialiasing are aLocX = 2, aLocY = 32, with antialiasing are aLocX = 2, aLocY = 8. 3) The comparison of average performance for model Axis_of_bearing.brep with window size 1280x962 and in "fit all" mode on CPU Intel Core i5 and GPU NVidia GeForce GTS 450: with antialiasing GPU: 12-15 FPS CPU: 2-3 FPS without antialiasing GPU: 24-30 FPS CPU: 3-6 FPS |
|
Dear dbp, the patch is ready (branch CR24317). Please review. |
|
Dear osa, Please consider remarks on the code and re-base your patch on CR24503_3 branch. Performance impact should be carefully checked. Please compare performace of re-based patch and CR24503_3 on various scenes (with different shapes and different number of OpenGL structures). You may prepare some test suite (as number of test shapes and DRAW scripts) and share it with ray-tracing working group. Crashes on Intel CPUs must be eliminated. Explore the causes of such crashes more carefully. |
|
Dear bugmaster, please close the issue since it can not be processed anymore after migration from OpenCL to GLSL for Raytracing functionality. |
|
Branch CR24317 has been deleted by inv. SHA-1: ec48bdc9a7261ce5d1002fe0975d2466e56de1c0 |
Date Modified | Username | Field | Change |
---|---|---|---|
2013-11-05 15:02 | kgv | New Issue | |
2013-11-05 15:02 | kgv | Assigned To | => san |
2013-11-05 15:02 | kgv | Assigned To | san => dbp |
2013-11-05 15:02 | kgv | Relationship added | related to 0024130 |
2013-11-05 15:31 | kgv | Priority | normal => low |
2013-11-05 17:29 | kgv | Assigned To | dbp => osa |
2013-11-05 17:29 | kgv | Status | new => assigned |
2014-01-20 10:25 |
|
Note Added: 0027550 | |
2014-01-20 10:29 |
|
Note Added: 0027551 | |
2014-01-20 10:30 |
|
Status | assigned => feedback |
2014-01-20 10:31 |
|
Assigned To | osa => dbp |
2014-01-27 10:22 |
|
Note Added: 0027644 | |
2014-01-27 10:22 |
|
Assigned To | dbp => osa |
2014-01-27 10:22 |
|
Status | feedback => assigned |
2014-04-04 18:16 |
|
Target Version | 6.7.1 => 6.8.0 |
2014-09-23 12:46 |
|
Target Version | 6.8.0 => Unscheduled |
2014-09-23 15:54 | kgv | Note Added: 0032017 | |
2014-09-23 15:54 | kgv | Assigned To | osa => bugmaster |
2014-09-23 15:54 | kgv | Status | assigned => feedback |
2014-09-23 15:54 | kgv | Resolution | open => no change required |
2014-09-25 10:15 | bugmaster | Status | feedback => closed |
2014-09-25 10:15 | bugmaster | Assigned To | bugmaster => kgv |
2014-09-30 11:38 | git | Note Added: 0032451 | |
2014-11-10 20:11 |
|
Target Version | Unscheduled => |