Neko  0.9.0
A portable framework for high-order spectral element flow simulations
opencl_intf Module Reference

Fortran OpenCL interface.

Data Types

interface  clGetPlatformIDs
 
interface  clGetDeviceIDs
 
interface  clCreateContext
 
interface  clCreateCommandQueue
 
interface  clCreateBuffer
 
interface  clCreateUserEvent
 
interface  clEnqueueReadBuffer
 
interface  clEnqueueWriteBuffer
 
interface  clEnqueueCopyBuffer
 
interface  clEnqueueMarkerWithWaitList
 
interface  clEnqueueMarker
 
interface  clEnqueueBarrier
 
interface  clEnqueueWaitForEvents
 
interface  clWaitForEvents
 
interface  clSetUserEventStatus
 
interface  clGetDeviceInfo
 
interface  clReleaseContext
 
interface  clReleaseCommandQueue
 
interface  clReleaseDevice
 
interface  clReleaseProgram
 
interface  clReleaseMemObject
 
interface  clReleaseEvent
 
interface  clFlush
 
interface  clFinish
 

Enumerations

enum  {
  cl_success = 0 , cl_device_not_found = -1 , cl_device_not_available = -2 , cl_compiler_not_available = -3 ,
  cl_mem_object_allocation_failure = -4 , cl_out_of_resources = -5 , cl_out_of_host_memory = -6 , cl_profiling_info_not_available = -7 ,
  cl_mem_copy_overlap = -8 , cl_image_format_mismatch = -9 , cl_image_format_not_supported = -10 , cl_build_program_failure = -11 ,
  cl_map_failure = -12
}
 Enum Error Codes. More...
 
enum  {
  cl_mem_read_write = 1 , cl_mem_write_only = 2 , cl_mem_read_only = 4 , cl_mem_use_host_ptr = 8 ,
  cl_mem_alloc_host_ptr = 16 , cl_mem_host_write_only = 128 , cl_mem_host_read_only = 256 , cl_mem_host_no_access = 512
}
 Enum mem flags. More...
 
enum  { cl_complete = 0 , cl_running = 1 , cl_submitted = 2 , cl_queued = 3 }
 Enum event flags. More...
 
enum  { cl_false = 0 , cl_true = 1 }
 Enum boolean. More...
 
enum  { cl_context_platform = int(Z'1084') }
 
enum  { cl_device_name = 4139 }
 Enum device info. More...
 

Functions/Subroutines

subroutine opencl_init
 
subroutine opencl_finalize
 
subroutine opencl_device_name (name)
 
integer function opencl_device_count ()
 Return the number of OpenCL devices. More...
 

Variables

type(c_ptr), bind(C) glb_cmd_queue = C_NULL_PTR
 Global OpenCL command queue. More...
 
type(c_ptr), bind(C) aux_cmd_queue = C_NULL_PTR
 Aux OpenCL command queue. More...
 
type(c_ptr), bind(C) glb_ctx = C_NULL_PTR
 Global OpenCL context. More...
 
type(c_ptr), target glb_device_id = C_NULL_PTR
 Global OpenCL device_id. More...
 
integer(c_int64_t), parameter cl_device_type_default = 1
 Device types. More...
 
integer(c_int64_t), parameter cl_device_type_cpu = 2
 
integer(c_int64_t), parameter cl_device_type_gpu = 4
 
integer(c_int64_t), parameter cl_device_type_accelerator = 8
 
integer(c_int64_t), parameter cl_device_type_custom = 16
 
integer(c_int64_t), parameter cl_device_type_all = int(Z'FFFFFFFF', i8)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
cl_success 
cl_device_not_found 
cl_device_not_available 
cl_compiler_not_available 
cl_mem_object_allocation_failure 
cl_out_of_resources 
cl_out_of_host_memory 
cl_profiling_info_not_available 
cl_mem_copy_overlap 
cl_image_format_mismatch 
cl_image_format_not_supported 
cl_build_program_failure 
cl_map_failure 

Definition at line 55 of file opencl_intf.F90.

◆ anonymous enum

anonymous enum
Enumerator
cl_mem_read_write 
cl_mem_write_only 
cl_mem_read_only 
cl_mem_use_host_ptr 
cl_mem_alloc_host_ptr 
cl_mem_host_write_only 
cl_mem_host_read_only 
cl_mem_host_no_access 

Definition at line 72 of file opencl_intf.F90.

◆ anonymous enum

anonymous enum
Enumerator
cl_complete 
cl_running 
cl_submitted 
cl_queued 

Definition at line 84 of file opencl_intf.F90.

◆ anonymous enum

anonymous enum
Enumerator
cl_false 
cl_true 

Definition at line 92 of file opencl_intf.F90.

◆ anonymous enum

anonymous enum
Enumerator
cl_context_platform 

Definition at line 97 of file opencl_intf.F90.

◆ anonymous enum

anonymous enum
Enumerator
cl_device_name 

Definition at line 102 of file opencl_intf.F90.

Function/Subroutine Documentation

◆ opencl_device_count()

integer function opencl_intf::opencl_device_count

Definition at line 498 of file opencl_intf.F90.

Here is the caller graph for this function:

◆ opencl_device_name()

subroutine opencl_intf::opencl_device_name ( character(len=*), intent(inout)  name)

Definition at line 483 of file opencl_intf.F90.

Here is the caller graph for this function:

◆ opencl_finalize()

subroutine opencl_intf::opencl_finalize

Definition at line 459 of file opencl_intf.F90.

Here is the caller graph for this function:

◆ opencl_init()

subroutine opencl_intf::opencl_init

Definition at line 406 of file opencl_intf.F90.

Here is the caller graph for this function:

Variable Documentation

◆ aux_cmd_queue

type(c_ptr), bind(C) opencl_intf::aux_cmd_queue = C_NULL_PTR

Definition at line 46 of file opencl_intf.F90.

◆ cl_device_type_accelerator

integer(c_int64_t), parameter opencl_intf::cl_device_type_accelerator = 8

Definition at line 110 of file opencl_intf.F90.

◆ cl_device_type_all

integer(c_int64_t), parameter opencl_intf::cl_device_type_all = int(Z'FFFFFFFF', i8)

Definition at line 112 of file opencl_intf.F90.

◆ cl_device_type_cpu

integer(c_int64_t), parameter opencl_intf::cl_device_type_cpu = 2

Definition at line 108 of file opencl_intf.F90.

◆ cl_device_type_custom

integer(c_int64_t), parameter opencl_intf::cl_device_type_custom = 16

Definition at line 111 of file opencl_intf.F90.

◆ cl_device_type_default

integer(c_int64_t), parameter opencl_intf::cl_device_type_default = 1

Definition at line 107 of file opencl_intf.F90.

◆ cl_device_type_gpu

integer(c_int64_t), parameter opencl_intf::cl_device_type_gpu = 4

Definition at line 109 of file opencl_intf.F90.

◆ glb_cmd_queue

type(c_ptr), bind(C) opencl_intf::glb_cmd_queue = C_NULL_PTR

Definition at line 43 of file opencl_intf.F90.

◆ glb_ctx

type(c_ptr), bind(C) opencl_intf::glb_ctx = C_NULL_PTR

Definition at line 49 of file opencl_intf.F90.

◆ glb_device_id

type(c_ptr), target opencl_intf::glb_device_id = C_NULL_PTR

Definition at line 52 of file opencl_intf.F90.