Создание экземпляра шаблона ядра CUDA, вызывающее ошибку компиляции ⇐ C++
Создание экземпляра шаблона ядра CUDA, вызывающее ошибку компиляции
Я пытаюсь определить шаблон ядра CUDA для логических операций над изображением. Код выглядит следующим образом:
#define AND 1 #define ИЛИ 2 #определить исключающее ИЛИ 3 #определить SHL 4 #define SHR 5 шаблон __device__ встроенный T Operation_lb(T a, T b) { переключатель (код операции) { случай И: вернуть а и б; случай ИЛИ: вернуть | б; случай XOR: вернуть а ^ б; корпус ШЛ: вернуть > б; по умолчанию: вернуть 0; } } //Логическая операция с константой шаблон __global__ void kernel_ological_constant(T* src, const T val, T* dst, ширина int, высота int, шаг int) { const int xIndex = blockIdx.x * blockDim.x + threadIdx.x; const int yIndex = blockIdx.y * blockDim.y + threadIdx.y; if(xIndex >= ширина || yIndex >= высота) return; unsigned int tid = yIndex * шаг + (каналы * xIndex); #прагма развернуть for(int i=0; i
Я пытаюсь определить шаблон ядра CUDA для логических операций над изображением. Код выглядит следующим образом:
#define AND 1 #define ИЛИ 2 #определить исключающее ИЛИ 3 #определить SHL 4 #define SHR 5 шаблон __device__ встроенный T Operation_lb(T a, T b) { переключатель (код операции) { случай И: вернуть а и б; случай ИЛИ: вернуть | б; случай XOR: вернуть а ^ б; корпус ШЛ: вернуть > б; по умолчанию: вернуть 0; } } //Логическая операция с константой шаблон __global__ void kernel_ological_constant(T* src, const T val, T* dst, ширина int, высота int, шаг int) { const int xIndex = blockIdx.x * blockDim.x + threadIdx.x; const int yIndex = blockIdx.y * blockDim.y + threadIdx.y; if(xIndex >= ширина || yIndex >= высота) return; unsigned int tid = yIndex * шаг + (каналы * xIndex); #прагма развернуть for(int i=0; i
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
CUDA ON DEBIAN TRIXIE: версия драйвера CUDA недостаточно для версии времени выполнения CUDA
Anonymous » » в форуме Linux - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-