144 {
146 std::cerr << "Error at [" << __FILE__ << ":" << __LINE__ << "]\n\t"
147 << __PRETTY_FUNCTION__ << "\n\t L(" << L
148 <<
") must not be smaller than m_Locality(" <<
m_Locality <<
")."
149 << std::endl;
150 std::exit(EXIT_FAILURE);
151 }
152
154 int const dim = subSpaces[L].dim();
155 MatrixType res(dim, dim);
156
157 constexpr void (*kernel)(
158 Eigen::MatrixBase< std::remove_reference_t<decltype(*res.ptr())> >*,
159 Eigen::MatrixBase< std::remove_reference_t<
decltype(*
m_locOp.ptr())> >
const*,
162 struct cudaFuncAttributes
attr;
164 int const nThread = min(dim, (
int)sqrt(
attr.maxThreadsPerBlock));
168
171 dSubSpace.ptr());
172 cuCHECK(cudaDeviceSynchronize());
173
174
175
176 return res;
177 };
Definition ObjectOnGPU.cuh:149
Definition HilbertSpace.hpp:568
Definition Ensemble.cuh:17
static SubSpaceManager & get_instance()
Definition Ensemble.cuh:32
cuCHECK(cudaFuncGetAttributes(&attr, MatrixElementsInSector))
debug_print("# Determining GPU configuration.")
struct cudaFuncAttributes attr
Definition getAttributesOfMatrixElementsInSector.cpp:2
Integer_t const nBlock
Definition getAttributesOfMatrixElementsInSector.cpp:5
Integer_t const nThread
Definition getAttributesOfMatrixElementsInSector.cpp:4
__global__ void construct_globalOp_kernel(Eigen::MatrixBase< Derived1 > *dTotMat, Eigen::MatrixBase< Derived2 > const *dLocMat, SubSpace< TotalSpace, Scalar > const *subSpace)
Definition Ensemble.cuh:64