aboutsummaryrefslogtreecommitdiff
path: root/src/core/cpu/device.cpp
AgeCommit message (Collapse)Author
2015-07-14Remove 64 bit atomics extensions from CPU Device.ocl_1_2Gil Pitney
The extension is optional, partial support exists in atomic.cl, so can be added back if that becomes a requirement. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2015-06-05clCreateSubDevices(): Return CL_DEVICE_PARTITION_FAILED if numCPUs() == 1Gil Pitney
If a sub-device cannot be further sub-divided, the v1.2 spec allows the implementation to return CL_DEVICE_PARTITION_FAILED, or CL_INVALID_VALUE depending on one's interpretation. The Khronos v1.2 device_partition test fails in either case (which appears to be a bug). The Khronos v2.0 device_partition test was modified to accept the return value of CL_DEVICE_PARTITION_FAILED, which is a logical fix. This patch allows a similarly modified (fixed) Khronos v1.2 test to pass the test subroutine code which recursively subdivides devices. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2015-06-04Implement CL_DEVICE_PARTITION_TYPE case of clGetDeviceInfo()Gil Pitney
Used by clients to determine how a (sub)device was partitioned by clCreateSubDevices() Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2015-06-02Fix possible CPUDevice object mem leak in clCreateSubDevicesGil Pitney
Devices were previously being created during enumeration even when client was not asking for the devices. This is fixed. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2015-05-14Implemented clCreateSubDevices() PARITION_EQUALLY capabibility.Gil Pitney
This is a WIP patch beginning the addition of the v1.2 device fission feature. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2015-04-29Blank line removed from file.Gil Pitney
Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2015-02-03clGetDeviceInfo: Nominal updates for OCL v1.2.Gil Pitney
This patch allows Khronos conformance test 'computeinfo' to pass. Device fission is not implemented yet, so the values here report that only one device is present, and no sub-devices can be created. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-10prefetch: Implemented prefetch builtin (noop'ed)Gil Pitney
Also, updated CL_DEVICE_LOCAL_MEM_SIZE and Buffer::Buffer() constructor so that Khrnos basic "prefetch" test can pass. Previously, it was trying to allocate huge global buffers (computed based on the LOCAL_MEM_SIZE) and was failing. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-12-08Adjust CL_DEVICE_MAX_WORK_GROUP_SIZE and CL_DEVICE_MAX_WORK_ITEM_SIZES values.Gil Pitney
Some Khronos basic tests were crashing with huge work group sizes. This patch adjusts values down so that Khronos basic tests local_arg_def and local_kernel_def can now pass. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-11-19clCreateBuffer(): Ensure allocation meets minimum alignment for double16 typeGil Pitney
Previously, clCreateBuffer() was using malloc to allocate buffers, which caused havoc with NEON instructions expecting 128 bit alignment for float4 vectors. Now, use posix_memallign() to ensure alignment meets requirements of largest OpenCL data type (double16). Also, update clGetDeviceInfo()'s CL_DEVICE_MEM_BASE_ADDR_ALIGN and CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE accordingly. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
2014-10-28Initial Commit: Based on TI OpenCL v0.8, originally based on clover.shamrock_v0.8Gil Pitney
This is a continuation of the clover OpenCL project: http://people.freedesktop.org/~steckdenis/clover based on the contributions from Texas Instruments for Keystone II DSP device: git.ti.com/opencl and adding contributions from Linaro for ARM CPU-only support. See README.txt for more info, and build instructions. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>