openCL
文章平均质量分 82
꧁白杨树下꧂
这个作者很懒,什么都没留下…
展开
-
OpenCL™规范 5.13.5.1. 文件描述符句柄类型
CL_SEMAPHORE_HANDLE_OPAQUE_FD_KHR指定了一个POSIX文件描述符句柄,该句柄在OpenCL和其他兼容API之外只有有限的有效使用。信号量sema_object最初必须导入CL_SEMAPHORE_HANDLE_SYNC_FD_KHR类型的外部句柄。如果创建sema_object时未导入CL_SEMAPHORE_HANDLE_SYNC_FD_KHR句柄,则返回CL_INVALID_SEMAPHORE_KHR。如果fd无效,则CL_INVALID_VALUE。翻译 2024-10-18 17:32:50 · 29 阅读 · 0 评论 -
OpenCL™规范 5.13.5. 外部信号量句柄类型的描述
应用程序可以将相同的信号量有效负载导入多个OpenCL上下文,导入导出它的同一上下文,并多次导入给定的OpenCL上下文。在所有情况下,每个导入操作都必须创建一个不同的信号量对象。本节介绍由相关扩展添加的外部信号量句柄类型。翻译 2024-10-18 13:17:10 · 28 阅读 · 0 评论 -
OpenCL™规范 5.13.4. 导入信号量外部句柄
永久有效载荷导入的行为就像目标信号量被销毁一样,并且使用相同的句柄创建了一个新的信号量,但导入了有效载荷。因为导入信号量有效负载会暂时或永久地将现有有效负载与信号量分离,所以与应用于clReleaseSemaphoreKHR的使用限制类似的使用限制也适用于导入信号量负载的任何命令。当使用带有引用转移的句柄类型时,将有效载荷导入信号量会将该信号量添加到共享该有效载荷的所有信号量的集合中。此外,将信号量有效负载导出到具有复制传输的句柄,与执行信号量等待操作对源信号量的有效负载具有相同的副作用。翻译 2024-10-18 13:14:39 · 29 阅读 · 0 评论 -
OpenCL™规范 5.13.3. 导出信号量外部句柄
handle_type指定应为此可导出sema_object返回的信号量句柄的类型,并且必须是创建sema_object时指定的值之一。如果handle_size_ret为NULL,则忽略它。如果在创建sema_object时未指定请求的外部信号量句柄类型,则返回CL_INVALID_VALUE。如果handle_size小于存储返回句柄所需的大小,则返回CL_INVALID_VALUE。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。翻译 2024-10-15 21:36:47 · 29 阅读 · 0 评论 -
OpenCL™规范 5.13.2. 创建信号量
CL_INVALID_DEVICE,如果CL_SEMAPHORE_DEVICE_HANDLE_LIST_KHR被指定为sema_props的一部分,但它并不能准确标识一个有效设备;CL_INVALID_DEVICE,如果由属性CL_SEMAPHORE_DEVICE_HANDLE_LIST_KHR标识的一个或多个设备无法导入请求的外部信号量句柄类型。指定可用于导出正在创建的信号量的信号量句柄类型属性列表(以CL_SEMAPHORE_EXPORT_HANDLE_TYPES_LIST_END_KHR结尾)。翻译 2024-10-15 20:23:32 · 23 阅读 · 0 评论 -
OpenCL™规范 5.13.1. 信号量类型
必须支持cl_semaphore_info_khr的cl_khr_semaphore扩展的“新建API枚举”部分中描述的所有枚举。cl_semaphore_properties_khr表示与信号量相关的属性。cl_semaphore_info_khr表示对信号量附加信息的查询。cl_semaphore_payload_khr表示信号量的有效载荷值。必须支持CL_SEMAPHORE_TYPE_BINARY_KHR。cl_semaphore_type_khr表示不同类型的信号量。翻译 2024-10-04 20:06:13 · 31 阅读 · 0 评论 -
OpenCL™规范 5.13. 信号量
本节介绍cl_khr_maphore扩展定义的信号量类型和函数。翻译 2024-10-04 20:02:36 · 43 阅读 · 0 评论 -
OpenCL™规范 5.12. 标记、屏障和等待事件
如果event_wait_list不为NULL,则event_wait_list指向的事件列表必须有效,num_events_in_wait_list必须大于0。此命令返回一个可以等待的事件,即可以等待此事件以确保event_wait_list中的所有事件或在此命令之前排队到command_queue的所有先前排队的命令都已完成。此命令返回一个可以等待的。,即可以等待此事件以确保event_wait_list中的所有事件或在此命令之前排队到command_queue的所有先前排队的命令都已完成。翻译 2024-10-04 20:00:43 · 41 阅读 · 0 评论 -
OpenCL™规范 5.11.1.2.1. 使用OpenGL栅栏同步对象进行显式同步
如果支持cl_khr_gl_event扩展,则使用clCreateEventFromGLsyncKHR创建的事件对象提供了另一种协调OpenGL和OpenCL之间缓冲区和图像共享的方法。当绑定到另一个线程的OpenGL上下文正在访问内存对象时,显式同步最有用。使用clCreateEventFromGLsyncKHR从生成的OpenGL同步对象创建事件;通过clEnqueueAcquireGLObjects确定该事件对象的完成。当绑定到另一个线程的OpenGL上下文正在访问内存对象时,显式同步最有用。翻译 2024-09-28 15:30:16 · 63 阅读 · 0 评论 -
OpenCL™规范 5.11.1.2. 将事件对象链接到OpenGL栅栏同步对象
链接事件的CL_EVENT_COMMAND_TYPE为CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR,表示该事件与GL同步对象相关联,而不是与OpenCL命令相关联。链接事件的CL_EVENT_COMMAND_EXECUION_STATUS为CL_SUBMITTED,表示与同步对象关联的栅栏命令尚未完成,或为CL_COMPLETE,表示栅栏命令已完成。链接事件的CL_EVENT_COMMAND_QUEUE为NULL,因为该事件未与任何OpenCL命令队列关联。翻译 2024-09-28 15:25:15 · 58 阅读 · 0 评论 -
OpenCL™规范 5.11.1.1.1. 使用EGL栅栏同步对象进行显式同步
应用程序负责确保与EGL栅栏相关的命令流被刷新,以确保CL队列被提交给设备。当绑定到另一个线程的EGL客户端API上下文访问内存对象时,显式同步最有用。如果支持cl_khr_egl_event扩展,则使用clCreateEventFromEGLSyncKHR创建的事件对象提供了协调egl/egl客户端API对象和OpenCL之间共享的另一种方法。使用clCreateEventFromEGLSyncKHR从得到的EGL同步对象创建事件;EGL和EGL客户端API命令的完成可以由。翻译 2024-09-28 14:52:03 · 46 阅读 · 0 评论 -
OpenCL™规范 5.11.1.1. 将事件对象链接到EGL栅栏同步对象
链接事件的CL_EVENT_COMMAND_EXECUION_STATUS为CL_SUBMITTED,表示与同步对象关联的栅栏命令尚未完成,或为CL_COMPLETE,表示栅栏命令已完成。链接事件的CL_EVENT_COMMAND_TYPE是CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR,表示该事件与EGL同步对象相关联,而不是OpenCL命令。sync是针对EGLDisplay显示创建的EGL_SYN_FENCE_KHR类型的同步对象的名称。是EGLDisplay手柄。翻译 2024-09-28 14:46:07 · 22 阅读 · 0 评论 -
OpenCL™规范 5.11.1. 创建、等待和释放事件对象
当与事件关联的命令的执行状态更改为等于或超过command_exec_status指定的状态时,或者如果命令异常终止,则更改为CL_COMPLETE指定的执行状态时,将调用已注册的回调函数。如果pfn_event_notify为NULL,或者command_exec_callback_type不是CL_SUBMITED、CL_RUNNING或CL_COMPLETE,则为CL_INVALID_VALUE。param_value_size_ret返回param_name查询的数据的实际大小(以字节为单位)。翻译 2024-09-27 14:44:07 · 36 阅读 · 0 评论 -
OpenCL™规范 5.11. 事件对象
如果命令的执行终止,则与此终止命令关联的命令队列和关联的上下文(以及此上下文中的所有其他命令队列)可能不再可用。使用此上下文(以及与此上下文关联的命令队列)的OpenCL API调用的行为现在被认为是实现定义的。为了使排队命令的执行状态从CL_SUBMITTED更改为CL_RUNNING,此命令正在等待的所有事件必须已成功完成,即它们的执行状态必须为CL_COMPLETE。将命令排入命令队列的API调用将创建一个新的。如果命令的执行状态为CL_COMPLETE或为负整数值,则认为该命令已完成。翻译 2024-09-24 20:59:53 · 43 阅读 · 0 评论 -
OpenCL™规范 5.10. 执行内核
如果event_wait_list为NULL,则num_events_in_wait_lit必须为0。如果event_wait_list不为NULL,则event_wait-list指向的事件列表必须有效,num_events_in_wait_lister必须大于0。如果子缓冲区对象被指定为作为缓冲区对象的参数的值,并且创建子缓冲区时指定的偏移量与与队列关联的设备的CL_DEVICE_MEM_BASE_ADDR_ALIGN值不一致,则为CL_MISALIGNED_SUB_BFER_OFFSET。翻译 2024-09-24 20:50:39 · 47 阅读 · 0 评论 -
OpenCL™规范 5.9.4. 内核对象查询
为CL_KERNEL_MAX_SUB_GROUP_SIZE_FOR_NDRANGE、CL_KERNERNEL_SUB_GROUP_COUNT_FOR_NDRANGE或CL_KERNE L_LOCAL_SIZE_FOR SUB_GROUP COUNT,并且。返回启动时工作组大小的首选倍数。的参数,并且创建子缓冲区时指定的偏移量与command_queue关联的设备的CL_MISALIGNED_SUB_BASE_ADDR_ALIGN不对齐,则使用CL_MISALIGNED_SUB_FFER_OFFSET。翻译 2024-09-22 20:44:33 · 80 阅读 · 0 评论 -
OpenCL™规范 5.9.3. 复制内核对象
生成的内核将处于与调用clCreateKernel以创建具有与创建source_kernel相同的参数的生成内核相同的状态,对应用于内核的每个参数索引的clSetKernelArg或clSetKernelArgSVMPointer的最新调用以及对param_name参数的每个值的clSetKernelExecInfo的最后一次调用都应用于新的内核对象。返回的内核对象是source_kernel的精确副本,但有一个警告:返回内核对象的引用计数被设置为clCreateKernel返回的值。翻译 2024-09-22 17:22:39 · 54 阅读 · 0 评论 -
OpenCL™规范 5.9.2. 设置内核参数
限定符声明的,则内存对象的大小(以字节为单位)不能超过CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE,并且声明为指向CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE内存的指针的参数数量不能超过CL_DEVICE_MAX_CONSTANT_ARGS。CL_KERNEL_EXEC_INFO_SVM_FINE_GRAIN_SYSTEM=CL_FALSE表示OpenCL实现可能假设系统指针不作为内核参数传递,也不存储在作为内核参数传入的SVM分配中。翻译 2024-09-22 17:07:54 · 82 阅读 · 0 评论 -
OpenCL™规范 5.9.1. 创建内核对象
clCreateKernel返回一个有效的非零内核对象,如果内核对象创建成功,则errcode_ret设置为CL_SUCCESS。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。翻译 2024-09-21 17:32:51 · 44 阅读 · 0 评论 -
OpenCL™规范 5.9. 内核对象
内核是程序中声明的函数。内核由应用于程序中任何函数的__kernel限定符标识。内核对象封装了程序中声明的特定__kernel函数以及执行此__kernel功能时使用的参数值。翻译 2024-08-31 10:12:42 · 46 阅读 · 0 评论 -
OpenCL™规范 5.8.9. 程序对象查询
为CL_PROGRAM_NUM_KERNELS、CL_PROGRAM-KERNEL_NAMES、CL_PROGRAM_SCOPE_GLOBAL_CTORS_PRESENT或CL_PROGRAD_SCOPE_GOLBAL_DTORS_PRESENCE,并且尚未为与程序关联的设备列表中的至少一个设备构建成功的程序可执行文件,则为CL_INVALID_PRORAM_EXECUTABLE。param_value_size_ret返回param_name查询的数据的实际大小(以字节为单位)。翻译 2024-08-31 10:10:31 · 34 阅读 · 0 评论 -
OpenCL™规范 5.8.8. 卸载OpenCL编译器
这是应用程序的提示,并不保证编译器将来不会被使用,也不保证编译器实际上会被实现卸载。如有必要,在clUnloadPlatformCompiler之后调用clBuildProgram、clCompileProgram或clLinkProgram将重新加载编译器,以构建相应的可执行程序。这是应用程序的提示,并不保证编译器将来不会被使用,也不保证编译器实际上会被实现卸载。或者,如果没有通过ICD加载器使用OpenCL,则可以使用以下函数卸载OpenCL编译器。要卸载平台的OpenCL编译器,请调用以下函数。翻译 2024-08-29 09:37:37 · 103 阅读 · 0 评论 -
OpenCL™规范 5.8.7.3. SPIR编译选项
必须指定以指示二进制文件为SPIR格式,并指定compile选项。必须用于指定描述二进制文件格式和含义的SPIR规范的版本。未能指定这些编译选项可能会导致实现定义的行为。例如,如果二进制文件如SPIR 1.2版本中所述,则。如果支持cl_khr_spir扩展,则编译选项。翻译 2024-08-29 09:28:43 · 52 阅读 · 0 评论 -
OpenCL™规范 5.8.7.2. 程序链接选项
这些选项在数学内在选项和优化选项中进行了描述。链接器可以将这些选项应用于指定给clLinkProgram的所有已编译程序对象。链接器只能将这些选项应用于使用选项。链接程序可执行文件时可以指定以下选项。翻译 2024-08-29 09:25:55 · 39 阅读 · 0 评论 -
OpenCL™规范 5.8.7.1. 库链接选项
当此库与程序可执行文件链接时,允许链接器根据一个或多个链接选项(在“程序链接选项”中描述)修改库行为。此选项必须与创建库选项一起指定。创建clLinkProgram的input_programs参数中指定的已编译二进制文件库。在创建编译后的二进制文件库时,可以指定以下选项。1.2版本之前缺少库链接选项。翻译 2024-08-29 09:23:05 · 40 阅读 · 0 评论 -
OpenCL™规范 5.8.7. 连接选项
本规范定义了一组标准的链接器选项,当在线或离线链接编译后的程序时,OpenCL C编译器必须支持这些选项。这些链接器选项分为库链接选项和程序链接选项。这些可以通过一组特定于供应商或平台的选项进行扩展。1.2版本之前缺少链接器选项。翻译 2024-08-28 09:46:39 · 52 阅读 · 0 评论 -
OpenCL™规范 5.8.6.7. 调试程序的选项
此选项目前可用于为允许在设备上排队命令的内置函数生成其他错误(请参阅OpenCL内核语言规范)。2.0版本之前缺少调试选项。翻译 2024-08-28 09:43:53 · 49 阅读 · 0 评论 -
OpenCL™规范 5.8.6.6. 查询内核参数信息的选项
此选项允许编译器在程序可执行文件中存储有关内核参数的信息。存储的参数信息包括参数名称、类型、地址空间和使用的访问限定符。有关如何查询此信息,请参阅clGetCernelArgInfo的说明。在1.2版本之前,缺少对内核参数信息的查询。翻译 2024-08-28 09:41:12 · 44 阅读 · 0 评论 -
OpenCL™规范 5.8.6.5. 控制OpenCL C版本的选项
应用程序需要指定-cl-std=CL2.0构建选项以使用OpenCL C 2.0编译或构建程序,并指定-cl-std=CL3.0构建选项以用OpenCL C 3.0编译或生成程序。使用-cl std=CL2.0选项调用clBuildProgram或clCompileProgram将无法为CLD_OPENCL_C_VERSION等于OPENCL C 1.2或更低版本的任何设备编译程序,并且CLD_OPENCL_CALL_VERSION不包括OPENCL C 2.0。确定要使用的OpenCL C语言版本。翻译 2024-08-27 13:17:14 · 65 阅读 · 0 评论 -
OpenCL™规范 5.8.6.4. 请求或抑制警告的选项
警告是诊断信息,报告的结构本身没有错误,但有风险或表明可能存在错误。以下独立于语言的选项不启用特定的警告,但控制OpenCL编译器生成的诊断类型。对于使用IL创建的程序,这些选项将被忽略。将所有警告变成错误。翻译 2024-08-27 11:02:46 · 62 阅读 · 0 评论 -
OpenCL™规范 5.8.6.3. 优化选项
允许对浮点算术进行优化,这些优化(a)假设参数和结果有效,(b)可能违反IEEE 754标准,(c)假设OpenCL c或OpenCL SPIR-V环境规范的不安全数学优化部分中定义的放宽的OpenCL数值合规性要求,以及(d)可能违反OpenCL C或者OpenCL SPIR-V环境规范中的边缘情况行为。默认情况下,这些选项不会打开,因为它可能会导致依赖于数学函数的IEEE 754规则/规范的精确实现的程序输出不正确。此选项可能违反单精度和双精度浮点的OpenCL数值合规性要求,以及边缘情况行为。翻译 2024-08-27 10:56:31 · 62 阅读 · 0 评论 -
OpenCL™规范 5.8.6.2. 数学内部函数选项
如果指定了-cl-fp32-correct-rounded-divide-sqrt选项,并且未为设备设置CL_FP_CORRECTLY_ROUNDED_DIVIDE_SQRT,则clBuildProgram或clCompileProgram将无法为设备编译程序。如果支持双精度的可选扩展,则双精度非规范化数也可能被刷新为零。如果设备不支持双精度,或者如果设备支持双精度但不支持非标准化双精度数字,即CL_FP_DENORM位未在CLD_double_FP_CONFIG中设置,则双精度数字将忽略此选项。翻译 2024-08-27 10:34:25 · 52 阅读 · 0 评论 -
OpenCL™规范 5.8.6.1. 预处理器选项
此选项不可移植,因为它依赖于主机文件系统和主机操作系统。-D选项按照clBuildProgram或clCompileProgram的options参数中给出的顺序进行处理。请注意,-D选项和它定义的符号之间需要一个空格,否则行为将由实现定义。这些选项控制OpenCL C/C++预处理器,该预处理器在实际编译之前在每个程序源上运行。对于使用IL创建的程序,这些选项将被忽略。定义的内容被标记和处理,就像它们出现在#define指令的翻译阶段三一样。特别是,定义将被嵌入的换行符截断。翻译 2024-08-26 09:41:24 · 44 阅读 · 0 评论 -
OpenCL™规范 5.8.6. 编译器选项
编译器选项分为预处理器选项、数学内部函数选项、控制优化的选项和杂项选项。本规范定义了一组标准选项,当从OpenCL C/C++或相关的IL在线或离线构建程序可执行文件时,编译器必须支持这些选项。这些选项可以通过一组特定于供应商或平台的选项进行扩展。翻译 2024-08-26 09:32:47 · 74 阅读 · 0 评论 -
OpenCL™规范 5.8.5. 程序的单独编译和链接
如果num_input_programs为零且input_programs是NULL,或者如果num_input _programs也为零且input _programs不为NULL,或者num_input programs也不为零且input _programs也是NULL,则CL_INVALID_VALUE。如果device_list为NULL且num_devices大于零,或者device_list不为NULL且num_devices为零,则CL_INVALID_VALUE。翻译 2024-08-25 21:13:05 · 48 阅读 · 0 评论 -
OpenCL™规范 5.8.4. 构建程序可执行文件
如果程序是使用clCreateProgramWithILKHR、clCreateProgramaWithSource或clCreateProgram WithIL创建的,并且编译器不可用,即设备查询表中指定的CLD_COMPILER_AVAILABLE设置为CL_FALSE,则CL_COMPILER_NOT_AVAILABLE可用。如果device_list为NULL且num_devices大于零,或者device_list不为NULL且num_devices为零,则CL_INVALID_VALUE。翻译 2024-08-22 09:44:29 · 72 阅读 · 0 评论 -
OpenCL™规范 5.8.3. 设置SPIR-V专业化常量
如果专门化常量是布尔常量,则spec_value应该是指向cl_uchar值的指针。如果程序是使用clCreateProgramWithIL创建的,并且编译器不可用,即设备查询表中指定的CLD_COMPILER_AVAILABLE设置为CL_FALSE,则CL_COMPILER_NOT_AVAILABLE。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。CL_OUT_OF_RESOURCES,如果无法在设备上分配OpenCL实现所需的资源。翻译 2024-08-21 20:15:39 · 54 阅读 · 0 评论 -
OpenCL™规范 5.8.2. 保留和释放程序对象
关联的回调堆栈上注册指定的回调函数。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。CL_OUT_OF_HOST_MEMORY,如果无法在主机上分配OpenCL实现所需的资源。CL_OUT_OF_RESOURCES,如果无法在设备上分配OpenCL实现所需的资源。CL_OUT_OF_RESOURCES,如果无法在设备上分配OpenCL实现所需的资源。翻译 2024-08-20 16:04:23 · 53 阅读 · 0 评论 -
OpenCL™规范 5.8.1. 创建程序对象
它是一个num_devices条目的数组,如果成功为device_list[i]指定的设备加载了二进制文件,则返回binary_status[i]中的CL_SUCCESS;clCreateProgramWithBinary返回一个有效的非零程序对象,如果程序对象创建成功,则errcode_ret设置为CL_SUCCESS。如果kernel_names为NULL,或者kernel_names包含device_list中任何设备都不支持的内核名称,则返回CL_INVALID_VALUE。翻译 2024-07-14 18:40:34 · 105 阅读 · 0 评论 -
OpenCL™规范 5.8. 程序对象
OpenCL程序由一组内核组成,这些内核被标识为程序源代码中用__kernel限定符声明的函数。OpenCL程序还可能包含辅助函数和内核函数可以使用的常量数据。可执行程序可以由OpenCL编译器为相应的目标设备在线或离线生成。最新成功构建的程序可执行文件、库或编译二进制文件,构建程序可执行程序、库或汇编二进制文件的设备列表,使用的构建选项和构建日志。当前附加的内核对象的数量。程序源代码或二进制文件。翻译 2024-07-12 14:45:44 · 45 阅读 · 0 评论
分享