Я успешно создал оператор + между двумя float4, выполнив:
__device__ float4 operator+(float4 a, float4 b) {
// ...
}
Однако, если, кроме того, я хочу иметь оператор + для uchar4, делая то же самое с uchar4, я получаю следующую ошибку: «ошибка: более одного экземпляра перегруженной функции «оператор +» имеет связь «C» "
Я получаю похожее сообщение об ошибке, когда объявляю несколько функций с одинаковым именем, но разными аргументами. Итак, два вопроса:
- Полиморфизм: возможно ли иметь несколько функций с одинаковым именем и разными аргументами в Cuda? Если да, то почему у меня появляется это сообщение об ошибке?
- оператор+ для float4: кажется, что эта функция уже включена путем включения "cutil_math.h", но когда я включаю это (
#include <cutil_math.h>
), он жалуется, что такого файла или каталога нет... что-то особенное Я должен делать ? Примечание. Я использую pycuda, cuda для python.
Спасибо!