summaryrefslogtreecommitdiff
path: root/external/clBLAS/src/library/common/devinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'external/clBLAS/src/library/common/devinfo.c')
-rw-r--r--external/clBLAS/src/library/common/devinfo.c312
1 files changed, 0 insertions, 312 deletions
diff --git a/external/clBLAS/src/library/common/devinfo.c b/external/clBLAS/src/library/common/devinfo.c
deleted file mode 100644
index dc374268..00000000
--- a/external/clBLAS/src/library/common/devinfo.c
+++ /dev/null
@@ -1,312 +0,0 @@
-/* ************************************************************************
- * Copyright 2013 Advanced Micro Devices, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ************************************************************************/
-
-
-#if defined(__APPLE__) || defined(__MACOSX)
-#include <OpenCL/cl.h>
-#else
-#include <CL/cl.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <defbool.h>
-
-#include <devinfo.h>
-
-static DeviceVendor
-stringToVendor(const char *str)
-{
- DeviceVendor vendor;
-
- if (!strcmp(str, "Advanced Micro Devices, Inc.")) {
- vendor = VENDOR_AMD;
- }
- else if (!strcmp(str, "NVIDIA Corporation")) {
- vendor = VENDOR_NVIDIA;
- }
- else {
- vendor = VENDOR_UNKNOWN;
- }
-
- return vendor;
-}
-
-static DeviceChip
-stringToChip(const char *str)
-{
- DeviceChip chip;
-
- if (!strcmp(str, "Redwood")) {
- chip = REDWOOD;
- }
- else if (!strcmp(str, "Juniper")) {
- chip = JUNIPER;
- }
- else if (!strcmp(str, "Cypress")) {
- chip = CYPRESS;
- }
- else if (!strcmp(str, "Hemlock")) {
- chip = HEMLOCK;
- }
- else if (!strcmp(str, "Cayman")) {
- chip = CAYMAN;
- }
- else if (!strcmp(str, "Tahiti")) {
- chip = TAHITI;
- }
- else if (!strcmp(str, "GeForce GTX 480")) {
- chip = GEFORCE_GTX_480;
- }
- else if (!strcmp(str, "GeForce GTX 580")) {
- chip = GEFORCE_GTX_580;
- }
- else {
- chip = CHIP_UNKNOWN;
- }
-
- return chip;
-}
-
-static DeviceFamily
-devFamily(DeviceChip chip)
-{
- DeviceFamily fam;
-
- switch (chip) {
- case REDWOOD:
- case JUNIPER:
- case CYPRESS:
- case HEMLOCK:
- fam = GPU_FAMILY_EVERGREEN;
- break;
- case GEFORCE_GTX_480:
- case GEFORCE_GTX_580:
- fam = GPU_FAMILY_FERMI;
- break;
- default:
- fam = DEVICE_FAMILY_UNKNOWN;
- break;
- }
-
- return fam;
-}
-
-cl_int
-identifyDevice(TargetDevice *target)
-{
- cl_int err;
- char s[4096];
- DeviceIdent *ident = &target->ident;
-
- err = clGetDeviceInfo(target->id, CL_DEVICE_VENDOR, sizeof(s), s, NULL);
- if (err != CL_SUCCESS) {
- return err;
- }
-
- ident->vendor = stringToVendor(s);
- err = clGetDeviceInfo(target->id, CL_DEVICE_NAME, sizeof(s), s, NULL);
- if (err != CL_SUCCESS) {
- return err;
- }
-
- ident->chip = stringToChip(s);
- ident->family = devFamily(ident->chip);
-
- return CL_SUCCESS;
-}
-
-cl_uint
-deviceWavefront(
- cl_device_id device,
- cl_int *error)
-{
- (void)device;
-
- if (error != NULL) {
- *error = CL_SUCCESS;
- }
- return 64;
-}
-
-bool
-deviceHasNativeComplex(
- cl_device_id device,
- cl_int *error)
-{
- (void)device;
-
- if (error != NULL) {
- *error = CL_SUCCESS;
- }
- return false;
-}
-
-cl_uint
-deviceComputeUnits(
- cl_device_id device,
- cl_int *error)
-{
- cl_int err;
- cl_uint v;
-
- v = 0;
- err = clGetDeviceInfo(device, CL_DEVICE_MAX_COMPUTE_UNITS,
- sizeof(v), &v, NULL);
- if (error != NULL) {
- *error = err;
- }
- return v;
-}
-
-size_t
-deviceMaxWorkgroupSize(
- cl_device_id device,
- cl_int *error)
-{
- cl_int err;
- size_t v;
-
- v = 64;
- err = clGetDeviceInfo(device, CL_DEVICE_MAX_WORK_GROUP_SIZE,
- sizeof(v), &v, NULL);
- if (error != NULL) {
- *error = err;
- }
- return v;
-}
-
-cl_ulong
-deviceLDSSize(
- cl_device_id device,
- cl_int *error)
-{
- cl_int err;
- cl_long v;
-
- v = 0;
- err = clGetDeviceInfo(device, CL_DEVICE_LOCAL_MEM_SIZE,
- sizeof(v), &v, NULL);
- if (error != NULL) {
- *error = err;
- }
- return v;
-}
-
-cl_uint
-deviceDataAlignment(
- cl_device_id device,
- cl_int *error)
-{
- cl_int err;
- cl_uint v;
-
- v = 0;
- err = clGetDeviceInfo(device, CL_DEVICE_MIN_DATA_TYPE_ALIGN_SIZE,
- sizeof(v), &v, NULL);
- if (error != NULL) {
- *error = err;
- }
- return v;
-}
-
-cl_uint
-deviceAddressBits(
- cl_device_id device,
- cl_int *error)
-{
- cl_int err;
- cl_uint v;
-
- v = 0;
- err = clGetDeviceInfo(device, CL_DEVICE_ADDRESS_BITS,
- sizeof(v), &v, NULL);
- if (error != NULL) {
- *error = err;
- }
- return v;
-}
-
-bool
-deviceHasNativeDouble(
- cl_device_id device,
- cl_int *error)
-{
- cl_int err;
- cl_uint v;
- size_t len;
- char *extensions, *s;
-
- /* Check for cl_khr_fp64 extension */
-
- err = clGetDeviceInfo(device, CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE,
- sizeof(cl_uint), &v, NULL);
- if (err != CL_SUCCESS) {
- if (error != NULL) {
- *error = err;
- }
- return false;
- }
- if (v != 0) {
- if (error != NULL) {
- *error = CL_SUCCESS;
- }
- return true;
- }
-
- /* Check extensions */
-
- err = clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, 0, NULL, &len);
- if (err != CL_SUCCESS) {
- if (error != NULL) {
- *error = err;
- }
- return false;
- }
- extensions = calloc(1, len);
- if (extensions == NULL) {
- if (error != NULL) {
- *error = CL_OUT_OF_HOST_MEMORY;
- }
- return false;
- }
- err = clGetDeviceInfo(device, CL_DEVICE_EXTENSIONS, len, extensions, NULL);
- if (err != CL_SUCCESS) {
- free(extensions);
- if (error != NULL) {
- *error = err;
- }
- return false;
- }
-
- /* Check for cl_amd_fp64 extension */
- s = strstr(extensions, "cl_amd_fp64"); /* strlen("cl_amd_fp64") = 11 */
- if (s != NULL) {
- if ((s[11] == ' ') || (s[11] == '\0')) {
- free(extensions);
- if (error != NULL) {
- *error = err;
- }
- return true;
- }
- }
-
- free(extensions);
- if (error != NULL) {
- *error = CL_SUCCESS;
- }
- return false;
-}