MeshLib C++ Docs
Loading...
Searching...
No Matches
MRCudaBasic.h
Go to the documentation of this file.
1#pragma once
2
3#include "exports.h"
4
5#include "MRMesh/MRMeshFwd.h"
6
7namespace MR
8{
9
10namespace Cuda
11{
12
13// Returns true if Cuda is present on this GPU
14// optional out maximum driver supported version
15// optional out current runtime version
16// optional out compute capability major version
17// optional out compute capability minor version
18MRCUDA_API bool isCudaAvailable( int* driverVersion = nullptr, int* runtimeVersion = nullptr, int* computeMajor = nullptr, int* computeMinor = nullptr );
19
20// Returns available GPU memory in bytes
21MRCUDA_API size_t getCudaAvailableMemory();
22
23// Returns maximum safe amount of free GPU memory that will be used for dynamic-sized buffers
24MRCUDA_API size_t getCudaSafeMemoryLimit();
25
26// Returns maximum buffer size in elements that can be allocated with given memory limit
27MRCUDA_API size_t maxBufferSize( size_t availableBytes, size_t elementCount, size_t elementBytes );
28
29// Returns maximum buffer size in elements that can be allocated with given memory limit
30// The size is aligned to the block dimensions
31MRCUDA_API size_t maxBufferSizeAlignedByBlock( size_t availableBytes, const Vector2i& blockDims, size_t elementBytes );
32MRCUDA_API size_t maxBufferSizeAlignedByBlock( size_t availableBytes, const Vector3i& blockDims, size_t elementBytes );
33
34} //namespace Cuda
35
36} //namespace MR
MRCUDA_API size_t getCudaSafeMemoryLimit()
MRCUDA_API size_t maxBufferSize(size_t availableBytes, size_t elementCount, size_t elementBytes)
MRCUDA_API bool isCudaAvailable(int *driverVersion=nullptr, int *runtimeVersion=nullptr, int *computeMajor=nullptr, int *computeMinor=nullptr)
MRCUDA_API size_t getCudaAvailableMemory()
MRCUDA_API size_t maxBufferSizeAlignedByBlock(size_t availableBytes, const Vector2i &blockDims, size_t elementBytes)