Added a function for checking whether CUDA-capable devices are available
This commit is contained in:
@@ -49,6 +49,10 @@ AcResult acInit(const AcMeshInfo mesh_info);
|
|||||||
* called at exit. */
|
* called at exit. */
|
||||||
AcResult acQuit(void);
|
AcResult acQuit(void);
|
||||||
|
|
||||||
|
/** Checks whether there are any CUDA devices available. Returns AC_SUCCESS if there is 1 or more,
|
||||||
|
* AC_FAILURE otherwise. */
|
||||||
|
AcResult acCheckDeviceAvailability(void);
|
||||||
|
|
||||||
/** Synchronizes a specific stream. All streams are synchronized if STREAM_ALL is passed as a
|
/** Synchronizes a specific stream. All streams are synchronized if STREAM_ALL is passed as a
|
||||||
* parameter*/
|
* parameter*/
|
||||||
AcResult acSynchronizeStream(const Stream stream);
|
AcResult acSynchronizeStream(const Stream stream);
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
// #include "astaroth_defines.h"
|
// #include "astaroth_defines.h"
|
||||||
#include "astaroth.h"
|
#include "astaroth.h"
|
||||||
|
|
||||||
|
#include "errchk.h"
|
||||||
#include "math_utils.h" // int3 + int3
|
#include "math_utils.h" // int3 + int3
|
||||||
|
|
||||||
#define AC_GEN_STR(X) #X
|
#define AC_GEN_STR(X) #X
|
||||||
@@ -51,6 +52,17 @@ acQuit(void)
|
|||||||
return acNodeDestroy(nodes[0]);
|
return acNodeDestroy(nodes[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
AcResult
|
||||||
|
acCheckDeviceAvailability(void)
|
||||||
|
{
|
||||||
|
int device_count; // Separate from num_devices to avoid side effects
|
||||||
|
ERRCHK_CUDA_ALWAYS(cudaGetDeviceCount(&device_count));
|
||||||
|
if (device_count > 0)
|
||||||
|
return AC_SUCCESS;
|
||||||
|
else
|
||||||
|
return AC_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
AcResult
|
AcResult
|
||||||
acSynchronize(void)
|
acSynchronize(void)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user