MCPcopy Create free account
hub / github.com/NVIDIA/cutlass / TEST

Function TEST

test/unit/cute/core/array_subbyte.cpp:42–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

40#include <cute/numeric/numeric_types.hpp>
41
42TEST(CuTe_core, ArraySubbyte)
43{
44 using namespace cute;
45 {
46 array_subbyte<int4_t, 10> array0{};
47 array_subbyte<int4_t, 5> array1{};
48 fill(array0, int4_t(0));
49 fill(array1, int4_t(1));
50
51 for (size_t i = 0; i < array1.size(); ++i) {
52 array0[i+5] = array1[i];
53 }
54
55 EXPECT_EQ(int4_t(array0.back()), int4_t(1));
56
57 for (size_t i = 0; i < array1.size(); ++i) {
58 EXPECT_EQ(int4_t(array0[i]), int4_t(int(i) / 5));
59 }
60 }
61
62 {
63 array_subbyte<uint8_t, 14> a{};
64
65 //std::cout << sizeof_bits<decltype(a)>::value << std::endl;
66 EXPECT_EQ(cute::sizeof_bits_v<decltype(a)>, 14*8);
67
68 fill(a, uint8_t(13));
69 for (int i = 0; i < int(a.size()); ++i) {
70 //std::cout << i << ": " << int(a[i]) << " -> ";
71 EXPECT_EQ(a[i], uint8_t(13));
72 a[i] = uint8_t(i);
73 //std::cout << int(a[i]) << std::endl;
74 EXPECT_EQ(a[i], uint8_t(i));
75 }
76
77 //std::cout << std::endl;
78 }
79
80 {
81 array_subbyte<int4_t, 14> a{};
82
83 //std::cout << sizeof_bits<decltype(a)>::value << std::endl;
84 EXPECT_EQ(cute::sizeof_bits_v<decltype(a)>, 14/2*8);
85
86 fill(a, int4_t(-5));
87 for (int i = 0; i < int(a.size()); ++i) {
88 //std::cout << i << ": " << int4_t(a[i]) << " -> ";
89 EXPECT_EQ(int4_t(a[i]), int4_t(-5));
90 a[i] = int4_t(i);
91 //std::cout << int4_t(a[i]) << std::endl;
92 EXPECT_EQ(int4_t(a[i]), int4_t(i));
93 }
94
95 //std::cout << std::endl;
96 }
97
98 {
99 array_subbyte<uint2_t, 14> a{};

Callers

nothing calls this directly

Calls 6

tensorFunction · 0.85
fillFunction · 0.50
make_tensorFunction · 0.50
sizeMethod · 0.45
backMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected