3
超載
我成功做創建了兩個float4變量之間的運營商+:運營商的Cuda
__device__ float4 operator+(float4 a, float4 b) {
// ...
}
但是,如果另外,我想+爲uchar4,通過與uchar4做同樣的事情有一個運營商,我得到以下錯誤: 「錯誤:重載函數的多個實例‘運營商+’有‘C’鏈接」「
我得到一個類似的錯誤消息時,我聲明瞭同名但不同參數的多個功能 左右。 ,兩個問題:
- 多態現象:是否可以在Cuda中具有多個具有相同名稱和不同參數的函數?如果是這樣,爲什麼我有這個錯誤信息?
- operator + for float4:看起來這個特性已經包含了「cutil_math.h」,但是當我包含它時(
#include <cutil_math.h>
)它抱怨沒有這樣的文件或目錄......任何特別的我應該做什麼?注意:我正在使用pycuda,它是python的一個cuda。
謝謝!
非常感謝,這很有道理!我會盡快嘗試。但是,我們如何改變pyCuda編譯代碼的方式? – WhitAngl
@WhitAngl:對不起,我忘了在答案中加上。看看我的編輯。 – talonmies
謝謝,這工作得很好! :) – WhitAngl