cuElim/include/header.cuh

48 lines
1.5 KiB
Plaintext
Raw Normal View History

2024-09-05 16:56:58 +08:00
#ifndef HEADER_CUH
#define HEADER_CUH
#include <iostream>
#include <cassert>
2024-09-12 18:53:59 +08:00
#include <cpp_progress.hpp>
2024-09-06 15:58:40 +08:00
// matrix
2024-09-05 16:56:58 +08:00
// #include <map>
// #include <vector>
// #include <algorithm>
// #include <numeric>
// #include <omp.h>
using namespace std;
using base_t = uint64_t;
2024-09-06 15:58:40 +08:00
static const size_t base_len = sizeof(base_t) * 8;
2024-09-05 16:56:58 +08:00
static const base_t base_zero = (base_t)0x00'00'00'00'00'00'00'00;
static const base_t base_one = (base_t)0x00'00'00'00'00'00'00'01;
static const base_t base_fullmask = (base_t)0xFF'FF'FF'FF'FF'FF'FF'FF;
2024-09-06 15:58:40 +08:00
static const size_t THREAD_X = 32; // 列
static const size_t THREAD_Y = 8; // 行
2024-09-05 16:56:58 +08:00
2024-09-06 15:58:40 +08:00
__host__ __device__ base_t *at_base(base_t *base, size_t rowstride, size_t r, size_t w)
2024-09-05 16:56:58 +08:00
{
2024-09-06 15:58:40 +08:00
return base + r * rowstride + w;
2024-09-05 16:56:58 +08:00
}
#define CUDA_CHECK(call) \
do \
{ \
cudaError_t err = call; \
if (err != cudaSuccess) \
{ \
fprintf(stderr, "CUDA error in file '%s' in line %i: %s.\n", \
__FILE__, __LINE__, cudaGetErrorString(err)); \
exit(EXIT_FAILURE); \
} \
} while (0)
#endif