My Project
device.h
Go to the documentation of this file.
1/*******************************************************
2 * Copyright (c) 2014, ArrayFire
3 * All rights reserved.
4 *
5 * This file is distributed under 3-clause BSD license.
6 * The complete license agreement can be obtained at:
7 * http://arrayfire.com/licenses/BSD-3-Clause
8 ********************************************************/
9
10#pragma once
11#include <af/defines.h>
12
13#ifdef __cplusplus
14namespace af
15{
26 AFAPI void info();
47 AFAPI const char* infoString(const bool verbose = false);
57 AFAPI void deviceInfo(char* d_name, char* d_platform, char *d_toolkit, char* d_compute);
58
65
72
80 AFAPI bool isDoubleAvailable(const int device);
81
86 AFAPI void setDevice(const int device);
87
92 AFAPI void sync(const int device = -1);
93
104
105 AFAPI void *alloc(const size_t elements, const dtype type);
106
108 //
117 template<typename T>
118 T* alloc(const size_t elements);
120
127 AFAPI void free(const void *ptr);
128
137 AFAPI void *pinned(const size_t elements, const dtype type);
138
143 template<typename T>
144 T* pinned(const size_t elements);
146
151 AFAPI void freePinned(const void *ptr);
152
153#if AF_API_VERSION >= 33
163 AFAPI void *allocHost(const size_t elements, const dtype type);
164#endif
165
166#if AF_API_VERSION >= 33
178 template<typename T>
179 AFAPI T* allocHost(const size_t elements);
180#endif
181
182#if AF_API_VERSION >= 33
184 //
190 AFAPI void freeHost(const void *ptr);
191#endif
192
198 // manager
200 // manager
206 size_t *lock_bytes, size_t *lock_buffers);
207
208#if AF_API_VERSION >= 33
211 //
215 //
219 AFAPI void printMemInfo(const char *msg = NULL, const int device_id = -1);
220#endif
221
227
231 AFAPI void setMemStepSize(const size_t size);
232
237}
238#endif
239
240#ifdef __cplusplus
241extern "C" {
242#endif
243
248
253
262 AFAPI af_err af_info_string(char** str, const bool verbose);
263
269 AFAPI af_err af_device_info(char* d_name, char* d_platform, char *d_toolkit, char* d_compute);
270
274 AFAPI af_err af_get_device_count(int *num_of_devices);
275
279 AFAPI af_err af_get_dbl_support(bool* available, const int device);
280
284 AFAPI af_err af_set_device(const int device);
285
290
294 AFAPI af_err af_sync(const int device);
295
301 AFAPI af_err af_alloc_device(void **ptr, const dim_t bytes);
302
309
313 AFAPI af_err af_alloc_pinned(void **ptr, const dim_t bytes);
314
319
320#if AF_API_VERSION >= 33
324 AFAPI af_err af_alloc_host(void **ptr, const dim_t bytes);
325#endif
326
327#if AF_API_VERSION >= 33
332#endif
333
338 AFAPI af_err af_device_array(af_array *arr, const void *data, const unsigned ndims, const dim_t * const dims, const af_dtype type);
339
344 AFAPI af_err af_device_mem_info(size_t *alloc_bytes, size_t *alloc_buffers,
345 size_t *lock_bytes, size_t *lock_buffers);
346
347#if AF_API_VERSION >= 33
350 //
359 AFAPI af_err af_print_mem_info(const char *msg, const int device_id);
360#endif
361
367
372 AFAPI af_err af_set_mem_step_size(const size_t step_bytes);
373
378 AFAPI af_err af_get_mem_step_size(size_t *step_bytes);
379
380#if AF_API_VERSION >= 31
387#if AF_API_VERSION >= 33
388 DEPRECATED("Use af_lock_array instead")
389#endif
391#endif
392
393#if AF_API_VERSION >= 31
400#if AF_API_VERSION >= 33
401 DEPRECATED("Use af_unlock_array instead")
402#endif
404#endif
405
406#if AF_API_VERSION >= 33
414#endif
415
416#if AF_API_VERSION >= 33
424#endif
425
434 AFAPI af_err af_get_device_ptr(void **ptr, const af_array arr);
435
436
437#ifdef __cplusplus
438}
439#endif
af_dtype
Definition defines.h:195
long long dim_t
Definition defines.h:50
af_err
Definition defines.h:63
void * af_array
Definition defines.h:222
#define AFAPI
Definition defines.h:31
#define DEPRECATED(msg)
Definition defines.h:37
AFAPI af_err af_device_array(af_array *arr, const void *data, const unsigned ndims, const dim_t *const dims, const af_dtype type)
Create array from device memory.
AFAPI af_err af_alloc_host(void **ptr, const dim_t bytes)
AFAPI void * allocHost(const size_t elements, const dtype type)
Allocate memory on host.
AFAPI af_err af_alloc_device(void **ptr, const dim_t bytes)
This device memory returned by this function can only be freed using af_free_device.
AFAPI void * alloc(const size_t elements, const dtype type)
Allocates memory using ArrayFire's memory manager.
AFAPI af_err af_get_device_count(int *num_of_devices)
AFAPI int getDeviceCount()
Gets the number of devices.
AFAPI af_err af_get_dbl_support(bool *available, const int device)
AFAPI bool isDoubleAvailable(const int device)
Queries the current device for double precision floating point support.
AFAPI af_err af_free_host(void *ptr)
AFAPI void freeHost(const void *ptr)
Free memory allocated internally by ArrayFire.
AFAPI void freePinned(const void *ptr)
Free pinned memory allocated by ArrayFire's memory manager.
AFAPI af_err af_free_pinned(void *ptr)
AFAPI af_err af_free_device(void *ptr)
This function will free a device pointer even if it has been previously locked.
AFAPI void free(const void *ptr)
Free device memory allocated by ArrayFire's memory manager.
AFAPI int getDevice()
Gets the current device ID.
AFAPI const char * infoString(const bool verbose=false)
AFAPI af_err af_info_string(char **str, const bool verbose)
Gets the output of af_info() as a string.
AFAPI void info()
AFAPI af_err af_info()
AFAPI af_err af_init()
AFAPI void setMemStepSize(const size_t size)
Set the resolution of memory chunks.
AFAPI af_err af_unlock_array(const af_array arr)
Unlock device buffer in the memory manager.
AFAPI af_err af_device_gc()
Call the garbage collection routine.
AFAPI af_err af_unlock_device_ptr(const af_array arr)
Unlock device buffer in the memory manager.
AFAPI af_err af_set_mem_step_size(const size_t step_bytes)
Set the minimum memory chunk size.
AFAPI af_err af_get_mem_step_size(size_t *step_bytes)
Get the minimum memory chunk size.
AFAPI af_err af_get_device_ptr(void **ptr, const af_array arr)
Get the device pointer and lock the buffer in memory manager.
AFAPI void printMemInfo(const char *msg=NULL, const int device_id=-1)
Prints buffer details from the ArrayFire Device Manager.
AFAPI af_err af_print_mem_info(const char *msg, const int device_id)
Prints buffer details from the ArrayFire Device Manager.
AFAPI af_err af_lock_array(const af_array arr)
Lock the device buffer in the memory manager.
AFAPI size_t getMemStepSize()
Get the resolution of memory chunks.
AFAPI void deviceMemInfo(size_t *alloc_bytes, size_t *alloc_buffers, size_t *lock_bytes, size_t *lock_buffers)
Gets information about the memory manager.
AFAPI af_err af_lock_device_ptr(const af_array arr)
Lock the device buffer in the memory manager.
AFAPI void deviceGC()
Call the garbage collection function in the memory manager.
AFAPI af_err af_device_mem_info(size_t *alloc_bytes, size_t *alloc_buffers, size_t *lock_bytes, size_t *lock_buffers)
Get memory information from the memory manager.
AFAPI af_err af_alloc_pinned(void **ptr, const dim_t bytes)
AFAPI void * pinned(const size_t elements, const dtype type)
Allocate pinned memory using ArrayFire's memory manager.
AFAPI af_err af_device_info(char *d_name, char *d_platform, char *d_toolkit, char *d_compute)
Gets the information about device and platform as strings.
AFAPI void deviceInfo(char *d_name, char *d_platform, char *d_toolkit, char *d_compute)
Gets the information about device and platform as strings.
AFAPI af_err af_set_device(const int device)
AFAPI af_err af_get_device(int *device)
AFAPI void setDevice(const int device)
Sets the current device.
AFAPI void sync(const int device=-1)
Blocks until the device is finished processing.
AFAPI af_err af_sync(const int device)
AFAPI array sum(const array &in, const int dim=-1)
C++ Interface for sum of elements in an array.
Definition algorithm.h:15