All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.lwjgl.opencl.KHRSuggestedLocalWorkSize Maven / Gradle / Ivy

Go to download

An open, royalty-free standard for cross-platform, parallel programming of diverse processors found in personal computers, servers, mobile devices and embedded platforms.

The newest version!
/*
 * Copyright LWJGL. All rights reserved.
 * License terms: https://www.lwjgl.org/license
 * MACHINE GENERATED FILE, DO NOT EDIT
 */
package org.lwjgl.opencl;

import javax.annotation.*;

import org.lwjgl.*;

import org.lwjgl.system.*;

import static org.lwjgl.system.Checks.*;
import static org.lwjgl.system.JNI.*;
import static org.lwjgl.system.MemoryUtil.*;

/**
 * Native bindings to the khr_suggested_local_work_size extension.
 * 
 * 

This extension adds the ability to query a suggested local work group size for a kernel running on a device for a specified global work size and global * work offset. The suggested local work group size will match the work group size that would be chosen if the kernel were enqueued with the specified * global work size and global work offset and a NULL local work size.

* *

By using the suggested local work group size query an application has greater insight into the local work group size chosen by the OpenCL * implementation, and the OpenCL implementation need not re-compute the local work group size if the same kernel is enqueued multiple times with the same * parameters.

*/ public class KHRSuggestedLocalWorkSize { protected KHRSuggestedLocalWorkSize() { throw new UnsupportedOperationException(); } // --- [ clGetKernelSuggestedLocalWorkSizeKHR ] --- /** * Unsafe version of: {@link #clGetKernelSuggestedLocalWorkSizeKHR GetKernelSuggestedLocalWorkSizeKHR} * * @param work_dim specifies the number of work dimensions in the input global work offset and global work size, and the output suggested local work size */ public static int nclGetKernelSuggestedLocalWorkSizeKHR(long command_queue, long kernel, int work_dim, long global_work_offset, long global_work_size, long suggested_local_work_size) { long __functionAddress = CL.getICD().clGetKernelSuggestedLocalWorkSizeKHR; if (CHECKS) { check(__functionAddress); check(command_queue); check(kernel); } return callPPPPPI(command_queue, kernel, work_dim, global_work_offset, global_work_size, suggested_local_work_size, __functionAddress); } /** * Query a suggested local work size for a kernel object. * *

The returned suggested local work size is expected to match the local work size that would be chosen if the specified kernel object, with the same * kernel arguments, were enqueued into the specified command queue with the specified global work size, specified global work offset, and with a {@code NULL} * local work size.

* * @param command_queue specifies the command queue and device for the query * @param kernel the kernel object and kernel arguments for the query. The OpenCL context associated with {@code kernel} and {@code command_queue} must the same. * @param global_work_offset can be used to specify an array of at least {@code work_dim} global ID offset values for the query. This is optional and may be {@code NULL} to indicate * there is no global ID offset. */ @NativeType("cl_int") public static int clGetKernelSuggestedLocalWorkSizeKHR(@NativeType("cl_command_queue") long command_queue, @NativeType("cl_kernel") long kernel, @Nullable @NativeType("size_t const *") PointerBuffer global_work_offset, @NativeType("size_t const *") PointerBuffer global_work_size, @NativeType("size_t *") PointerBuffer suggested_local_work_size) { if (CHECKS) { check(suggested_local_work_size, global_work_size.remaining()); checkSafe(global_work_offset, global_work_size.remaining()); } return nclGetKernelSuggestedLocalWorkSizeKHR(command_queue, kernel, global_work_size.remaining(), memAddressSafe(global_work_offset), memAddress(global_work_size), memAddress(suggested_local_work_size)); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy