Skip to content

Commit 0d8caa3

Browse files
[arcane,accelerator] Ajoute récupération du UUID de l'accélérateur avec HIP.
1 parent 8f2f618 commit 0d8caa3

File tree

4 files changed

+37
-19
lines changed

4 files changed

+37
-19
lines changed

arcane/src/arcane/accelerator/core/AcceleratorCore.cc

+17-1
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ getPointerAccessibility(eExecutionPolicy policy, const void* ptr, PointerAttribu
288288
return impl::RuntimeStaticInfo::getPointerAccessibility(policy, ptr, ptr_attr);
289289
}
290290

291-
extern "C++" void impl::
291+
void impl::
292292
arcaneCheckPointerIsAccessible(eExecutionPolicy policy, const void* ptr,
293293
const char* name, const TraceInfo& ti)
294294
{
@@ -298,6 +298,22 @@ arcaneCheckPointerIsAccessible(eExecutionPolicy policy, const void* ptr,
298298
/*---------------------------------------------------------------------------*/
299299
/*---------------------------------------------------------------------------*/
300300

301+
void impl::
302+
printUUID(std::ostream& o, char bytes[16])
303+
{
304+
static const char hexa_chars[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
305+
306+
for (int i = 0; i < 16; ++i) {
307+
o << hexa_chars[(bytes[i] >> 4) & 0xf];
308+
o << hexa_chars[bytes[i] & 0xf];
309+
if (i == 4 || i == 6 || i == 8 || i == 10)
310+
o << '-';
311+
}
312+
}
313+
314+
/*---------------------------------------------------------------------------*/
315+
/*---------------------------------------------------------------------------*/
316+
301317
std::ostream&
302318
operator<<(std::ostream& o, const PointerAttribute& a)
303319
{

arcane/src/arcane/accelerator/core/internal/AcceleratorCoreGlobalInternal.h

+7
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,13 @@ getThreadRunQueueRuntime();
9797
/*---------------------------------------------------------------------------*/
9898
/*---------------------------------------------------------------------------*/
9999

100+
//! Affiche l'UUID d'un accélérateur
101+
extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT void
102+
printUUID(std::ostream& o, char bytes[16]);
103+
104+
/*---------------------------------------------------------------------------*/
105+
/*---------------------------------------------------------------------------*/
106+
100107
//! Classe statique fournissant des fonctions internes à Arcane.
101108
class ARCANE_ACCELERATOR_CORE_EXPORT RuntimeStaticInfo
102109
{

arcane/src/arcane/accelerator/cuda/runtime/CudaAcceleratorRuntime.cc

+1-16
Original file line numberDiff line numberDiff line change
@@ -80,21 +80,6 @@ void arcaneCheckCudaErrors(const TraceInfo& ti, CUresult e)
8080
/*---------------------------------------------------------------------------*/
8181
/*---------------------------------------------------------------------------*/
8282

83-
void _printUUID(std::ostream& o, char bytes[16])
84-
{
85-
static const char hexa_chars[16] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
86-
87-
for (int i = 0; i < 16; ++i) {
88-
o << hexa_chars[(bytes[i] >> 4) & 0xf];
89-
o << hexa_chars[bytes[i] & 0xf];
90-
if (i == 4 || i == 6 || i == 8 || i == 10)
91-
o << '-';
92-
}
93-
}
94-
95-
/*---------------------------------------------------------------------------*/
96-
/*---------------------------------------------------------------------------*/
97-
9883
class CudaRunQueueStream
9984
: public impl::IRunQueueStream
10085
{
@@ -473,7 +458,7 @@ fillDevices(bool is_verbose)
473458
CUuuid device_uuid;
474459
ARCANE_CHECK_CUDA(cuDeviceGetUuid(&device_uuid, device));
475460
o << " deviceUuid=";
476-
_printUUID(o, device_uuid.bytes);
461+
impl::printUUID(o, device_uuid.bytes);
477462
o << "\n";
478463
}
479464
String description(ostr.str());

arcane/src/arcane/accelerator/hip/runtime/HipAcceleratorRuntime.cc

+12-2
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,16 @@ fillDevices(bool is_verbose)
394394
<< " " << dp.maxGridSize[2] << "\n";
395395
o << " hasManagedMemory = " << has_managed_memory << "\n";
396396

397+
{
398+
hipDevice_t device;
399+
ARCANE_CHECK_HIP(hipDeviceGet(&device, i));
400+
hipUUID device_uuid;
401+
ARCANE_CHECK_HIP(hipDeviceGetUuid(&device_uuid, device));
402+
o << " deviceUuid=";
403+
impl::printUUID(o, device_uuid.bytes);
404+
o << "\n";
405+
}
406+
397407
String description(ostr.str());
398408
if (is_verbose)
399409
omain << description;
@@ -416,8 +426,8 @@ class HipMemoryCopier
416426
MutableMemoryView to, [[maybe_unused]] eMemoryRessource to_mem,
417427
const RunQueue* queue) override
418428
{
419-
if (queue){
420-
queue->copyMemory(MemoryCopyArgs(to.bytes(),from.bytes()).addAsync(queue->isAsync()));
429+
if (queue) {
430+
queue->copyMemory(MemoryCopyArgs(to.bytes(), from.bytes()).addAsync(queue->isAsync()));
421431
return;
422432
}
423433
// 'hipMemcpyDefault' sait automatiquement ce qu'il faut faire en tenant

0 commit comments

Comments
 (0)