Skip to content
Snippets Groups Projects
cudify_vars.cpp 886 B
Newer Older
#include "util/cuda_util.hpp"
#ifdef HAVE_BOOST_CONTEXT
#include <boost/context/continuation.hpp>
#include <vector>
#include "config.h"

#ifdef HAVE_ALPAKA
#include "alpala/cudify_hardware_alpaka.hpp"
Pietro Incardona's avatar
Pietro Incardona committed

alpa_base_structs __alpa_base__;
Pietro Incardona's avatar
Pietro Incardona committed
#if defined(CUDIFY_USE_SEQUENTIAL) || defined(CUDIFY_USE_OPENMP)

thread_local dim3 threadIdx;
thread_local dim3 blockIdx;

unsigned int * tid_x[OPENMP_MAX_NUM_THREADS];
unsigned int * tid_y[OPENMP_MAX_NUM_THREADS];
unsigned int * tid_z[OPENMP_MAX_NUM_THREADS];

Pietro Incardona's avatar
Pietro Incardona committed
dim3 blockDim;
dim3 gridDim;

#endif

Pietro Incardona's avatar
Pietro Incardona committed
bool init_wrappers_call = false;
thread_local int vct_atomic_add;
thread_local int vct_atomic_rem;
Pietro Incardona's avatar
Pietro Incardona committed
size_t n_workers = 1;

#ifdef HAVE_BOOST_CONTEXT
Pietro Incardona's avatar
Pietro Incardona committed
std::vector<void *> mem_stack;
Pietro Incardona's avatar
Pietro Incardona committed

Pietro Incardona's avatar
Pietro Incardona committed
std::vector<boost::context::detail::fcontext_t> contexts;
Pietro Incardona's avatar
Pietro Incardona committed
thread_local void * par_glob;
thread_local boost::context::detail::fcontext_t main_ctx;
Pietro Incardona's avatar
Pietro Incardona committed
#endif