项目作者: Woking-34

项目描述 :
Collection of OpenGL/OpenCL/CUDA demos with compute shaders/kernels.
高级语言: C
项目地址: git://github.com/Woking-34/daedalus-compute.git
创建时间: 2019-03-16T07:13:26Z
项目社区:https://github.com/Woking-34/daedalus-compute

开源协议:

下载


Daedalus Compute Samples

Tiny collection of compute demos, no wrapper around the compute APIs, tested on Windows/Ubuntu.

Features

  • ”proof of concept” demos
  • supports OpenGL, OpenCL, CUDA compute shaders/kernels
  • visualization with OpenGL (vbo/tex interop)

Mesh Deform

Cloth Simulation

Particle Simulation

Ray Tracing in One Weekend by Peter Shirley

PBRT ray-marching volume rendering, with single scattering lighting model

NVIDIA FleX Demo - DamBreak

NVIDIA FleX Demo - FlagCloth

OpenGL samples

OpenCL platform and deivce info for Intel i7-6770HQ + Iris Pro Graphics 580

  1. PLATFORM #0
  2. CL_PLATFORM_VENDOR: Intel(R) Corporation
  3. CL_PLATFORM_NAME: Intel(R) OpenCL
  4. CL_PLATFORM_VERSION: OpenCL 2.1
  5. CL_PLATFORM_PROFILE: FULL_PROFILE
  6. DEVICE #0
  7. CL_DEVICE_VENDOR: Intel(R) Corporation
  8. CL_DEVICE_NAME: Intel(R) Iris(R) Pro Graphics 580
  9. CL_DEVICE_VERSION: OpenCL 2.1 NEO
  10. CL_DRIVER_VERSION: 25.20.100.6577
  11. CL_DEVICE_PROFILE: FULL_PROFILE
  12. CL_DEVICE_MAX_CLOCK_FREQUENCY: 950
  13. CL_DEVICE_MAX_COMPUTE_UNITS: 72
  14. CL_DEVICE_MAX_WORK_GROUP_SIZE: 256
  15. CL_DEVICE_MAX_WORK_ITEM_SIZES: 256x256x256
  16. CL_DEVICE_EXTENSIONS:
  17. cl_intel_accelerator
  18. cl_intel_advanced_motion_estimation
  19. cl_intel_d3d11_nv12_media_sharing
  20. cl_intel_device_side_avc_motion_estimation
  21. cl_intel_driver_diagnostics
  22. cl_intel_dx9_media_sharing
  23. cl_intel_media_block_io
  24. cl_intel_motion_estimation
  25. cl_intel_packed_yuv
  26. cl_intel_planar_yuv
  27. cl_intel_required_subgroup_size
  28. cl_intel_simultaneous_sharing
  29. cl_intel_spirv_device_side_avc_motion_estimation
  30. cl_intel_spirv_media_block_io
  31. cl_intel_spirv_subgroups
  32. cl_intel_subgroups
  33. cl_intel_subgroups_short
  34. cl_khr_3d_image_writes
  35. cl_khr_byte_addressable_store
  36. cl_khr_create_command_queue
  37. cl_khr_d3d10_sharing
  38. cl_khr_d3d11_sharing
  39. cl_khr_depth_images
  40. cl_khr_dx9_media_sharing
  41. cl_khr_fp16
  42. cl_khr_fp64
  43. cl_khr_gl_depth_images
  44. cl_khr_gl_event
  45. cl_khr_gl_msaa_sharing
  46. cl_khr_gl_sharing
  47. cl_khr_global_int32_base_atomics
  48. cl_khr_global_int32_extended_atomics
  49. cl_khr_icd
  50. cl_khr_il_program
  51. cl_khr_image2d_from_buffer
  52. cl_khr_local_int32_base_atomics
  53. cl_khr_local_int32_extended_atomics
  54. cl_khr_mipmap_image
  55. cl_khr_mipmap_image_writes
  56. cl_khr_priority_hints
  57. cl_khr_spir
  58. cl_khr_subgroups
  59. cl_khr_throttle_hints
  60. DEVICE #1
  61. CL_DEVICE_VENDOR: Intel(R) Corporation
  62. CL_DEVICE_NAME: Intel(R) Core(TM) i7-6770HQ CPU @ 2.60GHz
  63. CL_DEVICE_VERSION: OpenCL 2.1 (Build 0)
  64. CL_DRIVER_VERSION: 7.6.0.1125
  65. CL_DEVICE_PROFILE: FULL_PROFILE
  66. CL_DEVICE_MAX_CLOCK_FREQUENCY: 2600
  67. CL_DEVICE_MAX_COMPUTE_UNITS: 8
  68. CL_DEVICE_MAX_WORK_GROUP_SIZE: 8192
  69. CL_DEVICE_MAX_WORK_ITEM_SIZES: 8192x8192x8192
  70. CL_DEVICE_EXTENSIONS:
  71. cl_intel_dx9_media_sharing
  72. cl_intel_exec_by_local_thread
  73. cl_intel_vec_len_hint
  74. cl_khr_3d_image_writes
  75. cl_khr_byte_addressable_store
  76. cl_khr_d3d11_sharing
  77. cl_khr_depth_images
  78. cl_khr_dx9_media_sharing
  79. cl_khr_fp64
  80. cl_khr_gl_sharing
  81. cl_khr_global_int32_base_atomics
  82. cl_khr_global_int32_extended_atomics
  83. cl_khr_icd
  84. cl_khr_image2d_from_buffer
  85. cl_khr_local_int32_base_atomics
  86. cl_khr_local_int32_extended_atomics
  87. cl_khr_spir

Configure, build and run

  1. git clone https://github.com/Woking-34/daedalus-compute.git
  2. cd daedalus-compute
  3. mkdir daedalus-build && cd daedalus-build
  4. cmake .. -G"Visual Studio 15 2017 Win64"
  5. cmake --build . --target comp_deform_gl --config Release
  6. cmake --build . --target comp_cloth_gl --config Release
  7. cmake --build . --target comp_particles_gl --config Release
  8. ...
  9. cd ../daedalus-bin/Win64/Release
  10. comp_deform_gl.exe
  11. comp_cloth_gl.exe
  12. comp_particles_gl.exe
  13. ...

Todos

  • fix CUDA texture interop fallback path
  • fix rtow OpenCL vc CUDA perf diff

References