55 Ordinal num_vec_threads,
56 Ordinal num_row_threads,
57 Teuchos::FancyOStream& out) {
58 typedef Kokkos::Cuda Device;
60 const Ordinal
VectorSize = NumPerThread * ThreadsPerVector;
61 typedef typename Storage::template apply_N<VectorSize>::type
storage_type;
64 const Ordinal nGrid = 5;
65 KokkosSparse::DeviceConfig dev_config(num_blocks, num_vec_threads, num_row_threads);
68 nGrid,
VectorSize, dev_config, MultiplyOp(), out);
75 Kokkos_CrsMatrix_MP, Multiply_Default,
Storage, MultiplyOp )
77 typedef typename Storage::ordinal_type Ordinal;
78 const Ordinal NumPerThread = 1;
79 const Ordinal ThreadsPerVector = 16;
81 const Ordinal num_blocks = 0;
82 const Ordinal num_vec_threads = 0;
83 const Ordinal num_row_threads = 0;
90 Kokkos_CrsMatrix_MP, Multiply_1,
Storage, MultiplyOp )
92 typedef typename Storage::ordinal_type Ordinal;
93 const Ordinal NumPerThread = 1;
94 const Ordinal ThreadsPerVector = 16;
96 const Ordinal num_blocks = 10;
97 const Ordinal num_vec_threads = ThreadsPerVector;
98 const Ordinal num_row_threads = 4;
105 Kokkos_CrsMatrix_MP, Multiply_2,
Storage, MultiplyOp )
107 typedef typename Storage::ordinal_type Ordinal;
108 const Ordinal NumPerThread = 2;
109 const Ordinal ThreadsPerVector = 16;
111 const Ordinal num_blocks = 10;
112 const Ordinal num_vec_threads = ThreadsPerVector;
113 const Ordinal num_row_threads = 4;
120 Kokkos_CrsMatrix_MP, Multiply_3,
Storage, MultiplyOp )
122 typedef typename Storage::ordinal_type Ordinal;
123 const Ordinal NumPerThread = 3;
124 const Ordinal ThreadsPerVector = 16;
126 const Ordinal num_blocks = 10;
127 const Ordinal num_vec_threads = ThreadsPerVector;
128 const Ordinal num_row_threads = 4;
135 Kokkos_CrsMatrix_MP, Multiply_4,
Storage, MultiplyOp )
137 typedef typename Storage::ordinal_type Ordinal;
138 const Ordinal NumPerThread = 4;
139 const Ordinal ThreadsPerVector = 16;
141 const Ordinal num_blocks = 10;
142 const Ordinal num_vec_threads = ThreadsPerVector;
143 const Ordinal num_row_threads = 4;
173 Teuchos::GlobalMPISession mpiSession(&argc, &
argv);
176 Kokkos::InitializationSettings init_args;
177 init_args.set_device_id(0);
178 Kokkos::initialize( init_args );
179 Kokkos::print_configuration(std::cout);
182 int ret = Teuchos::UnitTestRepository::runUnitTestsFromMain(argc,
argv);
bool test_embedded_vector(const typename VectorType::ordinal_type nGrid, const typename VectorType::ordinal_type stoch_length, KokkosSparse::DeviceConfig dev_config, Multiply multiply_op, Teuchos::FancyOStream &out)
int main(int argc, char *argv[])