Tinker9 70bd052 (Thu Nov 9 12:11:35 2023 -0800)
Loading...
Searching...
No Matches
gpucard.h
1#pragma once
2#include "tool/rcman.h"
3#include <string>
4#include <vector>
5
6#if TINKER_CUDART
7namespace tinker {
10
13{
14 int device;
15 std::string name;
16 std::string pci_string;
17
20 int cc;
22
26 std::string ecc_string;
27
30
35
46
48};
49
55std::string gpuThrustVersion();
57std::vector<DeviceAttribute>& gpuDeviceAttributes();
58
60}
61#endif
62
63namespace tinker {
66
69
72int gpuGridSize(int nthreadsPerBlock);
73
76int gpuMaxNParallel(int idev);
77
79}
80
81//====================================================================//
82// //
83// Global Variables //
84// //
85//====================================================================//
86
87namespace tinker {
91constexpr unsigned WARP_SIZE = 32;
93constexpr unsigned ALL_LANES = 0xFFFFFFFF;
95constexpr unsigned BLOCK_DIM = 128;
97constexpr int PME_BLOCKDIM = 64;
99
105}
#define TINKER_EXTERN
Definition: macro.h:108
int device
Device number.
Definition: gpucard.h:14
int max_blocks_per_multiprocessor
Maximum thread blocks per multiporcessor.
Definition: gpucard.h:43
int max_threads_per_block
Maximum threads per block.
Definition: gpucard.h:32
int single_double_ratio
Single to double precision performance ratio.
Definition: gpucard.h:21
int multiprocessor_count
Multiprocessor count.
Definition: gpucard.h:37
int cc
Compute capability multiplied by 10.
Definition: gpucard.h:20
std::string pci_string
PCI Bus ID.
Definition: gpucard.h:16
std::string ecc_string
on, or off.
Definition: gpucard.h:26
int max_shared_bytes_per_multiprocessor
Maximum shared memory per mutiprocessor in bytes.
Definition: gpucard.h:41
int max_shared_bytes_per_block
Maximum shared memory per block in bytes.
Definition: gpucard.h:34
int cc_major
Major compute capability.
Definition: gpucard.h:18
int cc_minor
Minor compute capability.
Definition: gpucard.h:19
int clock_rate_kHz
Clock frequency in kHz, not memory clock rate.
Definition: gpucard.h:47
std::string compute_mode_string
exclusive thread, prohibited, exclusive process, or default.
Definition: gpucard.h:24
int max_threads_per_multiprocessor
Maximum threads per multiprocessor.
Definition: gpucard.h:39
size_t total_mem_bytes
Total device memory in bytes.
Definition: gpucard.h:29
size_t free_mem_bytes
Free device memory in bytes.
Definition: gpucard.h:28
std::string name
Device name.
Definition: gpucard.h:15
int cores_per_multiprocessor
Number of cores per multiprocessor.
Definition: gpucard.h:45
constexpr int PME_BLOCKDIM
Dimension of the thread blocks for some PME kernels.
Definition: gpucard.h:97
constexpr unsigned WARP_SIZE
Definition: gpucard.h:91
constexpr unsigned BLOCK_DIM
Default dimension of thread blocks.
Definition: gpucard.h:95
constexpr unsigned ALL_LANES
Mask for all of the lanes in a warp.
Definition: gpucard.h:93
std::string gpuCudaDriverVersion()
std::string gpuThrustVersion()
std::string gpuCudaRuntimeVersion()
std::vector< DeviceAttribute > & gpuDeviceAttributes()
Device attributes.
Definition: gpucard.h:13
int gpuGridSize(int nthreadsPerBlock)
int gpuMaxNParallel(int idev)
void gpuData(RcOp)
Sets up the GPU card.
int idevice
Device ID number in use.
int ndevice
Total number of visible devices.
ResourceOperation
Definition: rcman.h:46
Definition: testrt.h:9