Tinker9 70bd052 (Thu Nov 9 12:11:35 2023 -0800)
Loading...
Searching...
No Matches
launch.h
1#pragma once
2#include "ff/energy.h"
3#include "tool/cudalib.h"
4#include "tool/gpucard.h"
5
6namespace tinker {
9
21template <class K, class... Ts>
22void launch_k3s(cudaStream_t st, size_t sh, int bs, int np, K k, Ts&&... a)
23{
24 int gs = (np + bs - 1) / bs;
25 k<<<gs, bs, sh, st>>>(std::forward<Ts>(a)...);
26}
27
40template <class K, class... Ts>
41void launch_k3b(cudaStream_t st, size_t sh, int bs, int np, K k, Ts&&... a)
42{
43 np = std::min(np, nelem_buffer);
44 int gs = (np + bs - 1) / bs;
45 k<<<gs, bs, sh, st>>>(std::forward<Ts>(a)...);
46}
47
51template <class K, class... Ts>
52void launch_k2s(cudaStream_t st, int bs, int np, K k, Ts&&... a)
53{
54 const size_t sh = 0;
55 launch_k3s(st, sh, bs, np, k, std::forward<Ts>(a)...);
56}
57
62template <class K, class... Ts>
63void launch_k2b(cudaStream_t st, int bs, int np, K k, Ts&&... a)
64{
65 const size_t sh = 0;
66 launch_k3b(st, sh, bs, np, k, std::forward<Ts>(a)...);
67}
68
73template <class K, class... Ts>
74void launch_k1s(cudaStream_t st, int np, K k, Ts&&... a)
75{
76 const int bs = BLOCK_DIM;
77 launch_k2s(st, bs, np, k, std::forward<Ts>(a)...);
78}
79
85template <class K, class... Ts>
86void launch_k1b(cudaStream_t st, int np, K k, Ts&&... a)
87{
88 const int bs = BLOCK_DIM;
89 launch_k2b(st, bs, np, k, std::forward<Ts>(a)...);
90}
91
94#define ITHREAD threadIdx.x + blockIdx.x* blockDim.x
95#define STRIDE blockDim.x* gridDim.x
96
98}
void launch_k1b(cudaStream_t st, int np, K k, Ts &&... a)
Definition: launch.h:86
void launch_k3s(cudaStream_t st, size_t sh, int bs, int np, K k, Ts &&... a)
Definition: launch.h:22
void launch_k3b(cudaStream_t st, size_t sh, int bs, int np, K k, Ts &&... a)
Definition: launch.h:41
void launch_k2b(cudaStream_t st, int bs, int np, K k, Ts &&... a)
Definition: launch.h:63
void launch_k1s(cudaStream_t st, int np, K k, Ts &&... a)
Definition: launch.h:74
void launch_k2s(cudaStream_t st, int bs, int np, K k, Ts &&... a)
Definition: launch.h:52
int nelem_buffer
constexpr unsigned BLOCK_DIM
Default dimension of thread blocks.
Definition: gpucard.h:95
Definition: testrt.h:9