我需要在 OpenCL 内核中对两个无符号 64 位整数(无符号长整数)进行乘法运算,结果是一个 128 位整数(无符号长整数)。
较新版本的 openCL 似乎支持这种类型。
unsigned long m1, m2;
.
.
unsigned long long result = m1 * (unsigned long long)m2;
此代码有效,但速度很慢。这实际上是将 64 位乘以 128 位。我只需要 64 位和 64 位。
有没有办法设置乘法的结果类型,而不将一个被乘数转换为 128 位?