Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tf_cuda.h File Reference
#include "tfError.h"
#include <cuda.h>
#include <cuda_runtime.h>
#include <nvrtc.h>
#include <vector>
#include <stdexcept>
#include <string>
Include dependency graph for tf_cuda.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  TissueForge::cuda::CUDARTSource
 Convenience class for loading source from file and storing, here intended for CUDA. More...
 
struct  TissueForge::cuda::CUDARTProgram
 A JIT-compiled CUDA Tissue Forge program. More...
 
struct  TissueForge::cuda::CUDAFunction
 A CUDA kernel from a JIT-compiled Tissue Forge program. More...
 
struct  TissueForge::cuda::CUDAContext
 A convenience wrap of the CUDA context for JIT-compiled Tissue Forge programs. More...
 
struct  TissueForge::cuda::CUDADevice
 A simple interface with a CUDA device. More...
 

Namespaces

namespace  TissueForge
 Include Python header, disable linking to pythonX_d.lib on Windows in debug mode.
 
namespace  TissueForge::cuda
 Tissue Forge GPU acceleration on CUDA-supporting devices.
 

Macros

#define TF_CUDA_CALL(res)   cuda_errorchk(res, __FILE__, __LINE__)
 
#define TF_NVRTC_CALL(res)   nvrtc_errorchk(res, __FILE__, __LINE__)
 
#define TF_CUDART_CALL(res)   cudart_errorchk(res, __FILE__, __LINE__)
 

Enumerations

enum  ErrorCode : int {
  TFCUDAERR_ok = 0 , TFCUDAERR_setdevice , TFCUDAERR_setblocks , TFCUDAERR_setthreads ,
  TFCUDAERR_ondevice , TFCUDAERR_notondevice , TFCUDAERR_cleardevices , TFCUDAERR_refresh ,
  TFCUDAERR_send , TFCUDAERR_pull , TFCUDAERR_LAST
}
 

Functions

CUresult TissueForge::cuda::cuda_errorchk (CUresult retCode, const char *file, int line)
 
nvrtcResult TissueForge::cuda::nvrtc_errorchk (nvrtcResult retCode, const char *file, int line)
 
cudaError_t TissueForge::cuda::cudart_errorchk (cudaError_t retCode, const char *file, int line)
 
void TissueForge::cuda::init ()
 Initialize CUDA.
 
void TissueForge::cuda::setGLDevice (const int &deviceId)
 
std::string TissueForge::cuda::getDeviceName (const int &deviceId)
 Get the name of a device.
 
size_t TissueForge::cuda::getDeviceTotalMem (const int &deviceId)
 Get the total memory of device.
 
int TissueForge::cuda::getDeviceAttribute (const int &deviceId, const int &attrib)
 Get the attribute value of a device.
 
int TissueForge::cuda::getNumDevices ()
 Get number of available compute-capable devices.
 
std::string TissueForge::cuda::getDevicePCIBusId (const int &deviceId)
 Get the PCI bus id of a device.
 
int TissueForge::cuda::getCurrentDevice ()
 Get the device id of the current context of the calling CPU thread.
 
int TissueForge::cuda::maxThreadsPerBlock (const int &deviceId)
 Maximum number of threads per block.
 
int TissueForge::cuda::maxBlockDimX (const int &deviceId)
 Maximum x-dimension of a block.
 
int TissueForge::cuda::maxBlockDimY (const int &deviceId)
 Maximum y-dimension of a block.
 
int TissueForge::cuda::maxBlockDimZ (const int &deviceId)
 Maximum z-dimension of a block.
 
int TissueForge::cuda::maxGridDimX (const int &deviceId)
 Maximum x-dimension of a grid.
 
int TissueForge::cuda::maxGridDimY (const int &deviceId)
 Maximum y-dimension of a grid.
 
int TissueForge::cuda::maxGridDimZ (const int &deviceId)
 Maximum z-dimension of a grid.
 
int TissueForge::cuda::maxSharedMemPerBlock (const int &deviceId)
 Maximum amount of shared memory available to a thread block in bytes.
 
int TissueForge::cuda::maxTotalMemConst (const int &deviceId)
 Memory available on device for constant variables in a CUDA C kernel in bytes.
 
int TissueForge::cuda::warpSize (const int &deviceId)
 Warp size in threads.
 
int TissueForge::cuda::maxRegsPerBlock (const int &deviceId)
 Maximum number of 32-bit registers available to a thread block.
 
int TissueForge::cuda::clockRate (const int &deviceId)
 The typical clock frequency in kilohertz.
 
bool TissueForge::cuda::gpuOverlap (const int &deviceId)
 Test if the device can concurrently copy memory between host and device while executing a kernel.
 
int TissueForge::cuda::numMultiprocessors (const int &deviceId)
 Number of multiprocessors on the device.
 
bool TissueForge::cuda::kernelExecTimeout (const int &deviceId)
 Test if there is a run time limit for kernels executed on the device.
 
bool TissueForge::cuda::computeModeDefault (const int &deviceId)
 Test if device is not restricted and can have multiple CUDA contexts present at a single time.
 
bool TissueForge::cuda::computeModeProhibited (const int &deviceId)
 Test if device is prohibited from creating new CUDA contexts.
 
bool TissueForge::cuda::computeModeExclusive (const int &deviceId)
 Test if device can have only one context used by a single process at a time.
 
int TissueForge::cuda::PCIDeviceId (const int &deviceId)
 PCI device (also known as slot) identifier of the device.
 
int TissueForge::cuda::PCIDomainId (const int &deviceId)
 PCI domain identifier of the device.
 
int TissueForge::cuda::clockRateMem (const int &deviceId)
 Peak memory clock frequency in kilohertz.
 
int TissueForge::cuda::globalMemBusWidth (const int &deviceId)
 Global memory bus width in bits.
 
int TissueForge::cuda::L2CacheSize (const int &deviceId)
 Size of L2 cache in bytes. 0 if the device doesn't have L2 cache.
 
int TissueForge::cuda::maxThreadsPerMultiprocessor (const int &deviceId)
 Maximum resident threads per multiprocessor.
 
int TissueForge::cuda::computeCapabilityMajor (const int &deviceId)
 Major compute capability version number.
 
int TissueForge::cuda::computeCapabilityMinor (const int &deviceId)
 Minor compute capability version number.
 
bool TissueForge::cuda::L1CacheSupportGlobal (const int &deviceId)
 Test if device supports caching globals in L1 cache.
 
bool TissueForge::cuda::L1CacheSupportLocal (const int &deviceId)
 Test if device supports caching locals in L1 cache.
 
int TissueForge::cuda::maxSharedMemPerMultiprocessor (const int &deviceId)
 Maximum amount of shared memory available to a multiprocessor in bytes.
 
int TissueForge::cuda::maxRegsPerMultiprocessor (const int &deviceId)
 Maximum number of 32-bit registers available to a multiprocessor.
 
bool TissueForge::cuda::managedMem (const int &deviceId)
 Test if device supports allocating managed memory on this system.
 
bool TissueForge::cuda::multiGPUBoard (const int &deviceId)
 Test if device is on a multi-GPU board.
 
int TissueForge::cuda::multiGPUBoardGroupId (const int &deviceId)
 Unique identifier for a group of devices associated with the same board.
 
void TissueForge::cuda::test (const int &numBlocks, const int &numThreads, const int &numEls, const int &deviceId=0)
 Tests JIT-compiled program execution and deployment.
 
std::string TissueForge::cuda::tfIncludePath ()
 Returns the current path to the installed Tissue Forge include directory.
 
HRESULT TissueForge::cuda::setTfIncludePath (const std::string &_path)
 Set the current path to the installed Tissue Forge include directory.
 
std::string TissueForge::cuda::tfPrivateIncludePath ()
 Returns the path to the installed Tissue Forge private include directory.
 
std::string TissueForge::cuda::tfResourcePath ()
 Returns the current path to the installed Tissue Forge resource directory.
 
HRESULT TissueForge::cuda::setTfResourcePath (const std::string &_path)
 Set the current path to the installed Tissue Forge resource directory.
 
std::string TissueForge::cuda::CUDAPath ()
 Returns the path to the installed Tissue Forge CUDA resources directory.
 
std::string TissueForge::cuda::CUDAIncludePath ()
 Returns the current path to the installed CUDA include directory.
 
HRESULT TissueForge::cuda::setCUDAIncludePath (const std::string &_path)
 Set the current path to the installed CUDA include directory.
 
std::string TissueForge::cuda::CUDAResourcePath (const std::string &relativePath)
 Returns an absolute path to a subdirectory of the install Tissue Forge CUDA resources directory.
 
std::string TissueForge::cuda::CUDAPTXObjectRelPath ()
 Returns the relative path to the installed Tissue Forge CUDA PTX object directory.
 
std::vector< std::string > TissueForge::cuda::CUDAArchs ()
 Returns the supported CUDA architectures of the installation.