Module: OpenCL::Kernel::UnifiedSharedMemoryPreviewINTEL
- Included in:
- OpenCL::Kernel
- Defined in:
- lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb
Instance Method Summary collapse
- #clSetKernelArgMemPointerINTEL ⇒ Object
- #enqueue_with_args(command_queue, global_work_size, *args) ⇒ Object
- #set_arg_mem_pointer_intel(index, usm_pointer) ⇒ Object
- #set_indirect_device_access_intel(flag) ⇒ Object
- #set_indirect_host_access_intel(flag) ⇒ Object
- #set_shared_device_access_intel(flag) ⇒ Object
- #set_usm_ptrs_intel(ptrs) ⇒ Object
Instance Method Details
#clSetKernelArgMemPointerINTEL ⇒ Object
438 439 440 441 442 443 444 |
# File 'lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb', line 438 def clSetKernelArgMemPointerINTEL @_clSetKernelArgMemPointerINTEL ||= begin p = context.platform.get_extension_function("clSetKernelArgMemPointerINTEL", :cl_int, Kernel, :cl_uint, :pointer) error_check(OpenCL::INVALID_OPERATION) unless p p end end |
#enqueue_with_args(command_queue, global_work_size, *args) ⇒ Object
487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 |
# File 'lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb', line 487 def enqueue_with_args(command_queue, global_work_size, *args) n = self.num_args error_check(INVALID_KERNEL_ARGS) if args.length < n error_check(INVALID_KERNEL_ARGS) if args.length > n + 1 if args.length == n + 1 = args.last else = {} end n.times { |i| if args[i].class == SVMPointer and self.context.platform.version_number >= 2.0 then self.set_arg_svm_pointer(i, args[i]) elsif args[i].class == USMPointer then self.set_arg_mem_pointer_intel(i, args[i]) else self.set_arg(i, args[i]) end } command_queue.enqueue_ndrange_kernel(self, global_work_size, ) end |
#set_arg_mem_pointer_intel(index, usm_pointer) ⇒ Object
446 447 448 449 450 |
# File 'lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb', line 446 def set_arg_mem_pointer_intel(index, usm_pointer) error = clSetKernelArgMemPointerINTEL.call(self, index, usm_pointer) error_check(error) return self end |
#set_indirect_device_access_intel(flag) ⇒ Object
471 472 473 474 475 476 477 |
# File 'lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb', line 471 def set_indirect_device_access_intel( flag ) pt = MemoryPointer::new( :cl_bool ) pt.write_cl_bool( flag ) error = OpenCL.clSetKernelExecInfo( self, EXEC_INFO_INDIRECT_DEVICE_ACCESS_INTEL, pt.size, pt) error_check(error) self end |
#set_indirect_host_access_intel(flag) ⇒ Object
463 464 465 466 467 468 469 |
# File 'lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb', line 463 def set_indirect_host_access_intel( flag ) pt = MemoryPointer::new( :cl_bool ) pt.write_cl_bool( flag ) error = OpenCL.clSetKernelExecInfo( self, EXEC_INFO_INDIRECT_HOST_ACCESS_INTEL, pt.size, pt) error_check(error) self end |
#set_shared_device_access_intel(flag) ⇒ Object
479 480 481 482 483 484 485 |
# File 'lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb', line 479 def set_shared_device_access_intel( flag ) pt = MemoryPointer::new( :cl_bool ) pt.write_cl_bool( flag ) error = OpenCL.clSetKernelExecInfo( self, EXEC_INFO_SHARED_DEVICE_ACCESS_INTEL, pt.size, pt) error_check(error) self end |
#set_usm_ptrs_intel(ptrs) ⇒ Object
452 453 454 455 456 457 458 459 460 461 |
# File 'lib/opencl_ruby_ffi/intel/unified_shared_memory_preview.rb', line 452 def set_usm_ptrs_intel( ptrs ) pointers = [ptrs].flatten pt = MemoryPointer::new( :pointer, pointers.length ) pointers.each_with_index { |p, i| pt[i].write_pointer(p) } error = OpenCL.clSetKernelExecInfo( self, EXEC_INFO_USM_PTRS_INTEL, pt.size, pt) error_check(error) self end |