gpt4 book ai didi

c++ - 是否有泛化 int4、uint4、float4 等的模板化类型?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:15 26 4
gpt4 key购买 nike

我正在编写一个 CUDA 内核,它应该对各种类型的 vector 进行操作。没问题 - 使用 template<typename T> , 正确的?但是如果我想处理向量化标量类型的 vector 怎么办?

为了便于讨论,假设我希望能够处理所有 int4 , uint4 , float4等。是否有某种 Quad<T>我可以使用的类型?作为 CUDA 或 C++ 标准库类型的一部分? “元组”也可以。

注意事项:

  • 虽然这个问题与 CUDA 相关,但它不是特定于 CUDA 的。
  • 我想要一个不需要我“实现”模板的解决方案(例如使用 int4、uint4 或我自己定义的其他结构。)

最佳答案

您可以使用类型特征。例如

#include <cuda.h>

template<typename T> struct vectorized_type;

template<> struct vectorized_type<int> { typedef int4 vect_type; };

int main () {

vectorized_type<int>::vect_type test;

return 0;
}

关于c++ - 是否有泛化 int4、uint4、float4 等的模板化类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20348254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com