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#include "MRMesh/MRExpected.h"
7
8namespace MR
9{
12
13
14namespace Cuda
15{
16
18{
21
24
26 int computeMajor = 0;
27
29 int computeMinor = 0;
30
32 size_t totalGlobalMem = 0;
33
35 std::string name;
36
38 [[nodiscard]] MRCUDA_API bool fitForComputations() const;
39};
40
43
49[[deprecated( "Use getRuntimeInfo")]] MRCUDA_API bool isCudaAvailable( int* driverVersion = nullptr, int* runtimeVersion = nullptr, int* computeMajor = nullptr, int* computeMinor = nullptr );
50
52MRCUDA_API size_t getCudaAvailableMemory();
53
55MRCUDA_API size_t getCudaSafeMemoryLimit();
56
58MRCUDA_API size_t maxBufferSize( size_t availableBytes, size_t elementCount, size_t elementBytes );
59
62MRCUDA_API size_t maxBufferSizeAlignedByBlock( size_t availableBytes, const Vector2i& blockDims, size_t elementBytes );
63MRCUDA_API size_t maxBufferSizeAlignedByBlock( size_t availableBytes, const Vector3i& blockDims, size_t elementBytes );
64
65}
66
67}
std::string name
name of the device
Definition MRCudaBasic.h:35
int runtimeVersion
application's CUDA version
Definition MRCudaBasic.h:23
MRCUDA_API bool fitForComputations() const
returns true if all versions pass the checks
MRCUDA_API size_t getCudaSafeMemoryLimit()
Returns maximum safe amount of free GPU memory that will be used for dynamic-sized buffers.
size_t totalGlobalMem
global memory on device in bytes (not all is available for our process)
Definition MRCudaBasic.h:32
MRCUDA_API size_t maxBufferSize(size_t availableBytes, size_t elementCount, size_t elementBytes)
Returns maximum buffer size in elements that can be allocated with given memory limit.
MRCUDA_API bool isCudaAvailable(int *driverVersion=nullptr, int *runtimeVersion=nullptr, int *computeMajor=nullptr, int *computeMinor=nullptr)
int driverVersion
maximum CUDA version supported by the driver
Definition MRCudaBasic.h:20
MRCUDA_API Expected< DeviceInfo > getDeviceInfo()
Returns an error if CUDA is not available.
tl::expected< T, E > Expected
Definition MRExpected.h:31
int computeMinor
compute capability minor version
Definition MRCudaBasic.h:29
MRCUDA_API size_t getCudaAvailableMemory()
Returns available GPU memory in bytes.
int computeMajor
compute capability major version
Definition MRCudaBasic.h:26
MRCUDA_API size_t maxBufferSizeAlignedByBlock(size_t availableBytes, const Vector2i &blockDims, size_t elementBytes)
Definition MRCudaBasic.h:15
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRCudaBasic.h:18