MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / af_get_device_ptr

Function af_get_device_ptr

src/api/c/memory.cpp:121–148  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

119}
120
121af_err af_get_device_ptr(void **data, const af_array arr) {
122 try {
123 af_dtype type = getInfo(arr).getType();
124
125 switch (type) {
126 // FIXME: Perform copy if memory not continuous
127 case f32: *data = getDevicePtr(getArray<float>(arr)); break;
128 case f64: *data = getDevicePtr(getArray<double>(arr)); break;
129 case c32: *data = getDevicePtr(getArray<cfloat>(arr)); break;
130 case c64: *data = getDevicePtr(getArray<cdouble>(arr)); break;
131 case s32: *data = getDevicePtr(getArray<int>(arr)); break;
132 case u32: *data = getDevicePtr(getArray<uint>(arr)); break;
133 case s64: *data = getDevicePtr(getArray<intl>(arr)); break;
134 case u64: *data = getDevicePtr(getArray<uintl>(arr)); break;
135 case s16: *data = getDevicePtr(getArray<short>(arr)); break;
136 case u16: *data = getDevicePtr(getArray<ushort>(arr)); break;
137 case s8: *data = getDevicePtr(getArray<schar>(arr)); break;
138 case u8: *data = getDevicePtr(getArray<uchar>(arr)); break;
139 case b8: *data = getDevicePtr(getArray<char>(arr)); break;
140 case f16: *data = getDevicePtr(getArray<half>(arr)); break;
141
142 default: TYPE_ERROR(4, type);
143 }
144 }
145 CATCHALL;
146
147 return AF_SUCCESS;
148}
149
150template<typename T>
151inline void lockArray(const af_array arr) {

Callers 3

deviceMethod · 0.50
device<__half>Method · 0.50
deviceMethod · 0.50

Calls 2

getDevicePtrFunction · 0.50
getTypeMethod · 0.45

Tested by

no test coverage detected