Skip to content

Commit 081dfd8

Browse files
committed
support multi devid
1 parent 5d122ab commit 081dfd8

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

paddle/phi/backends/xpu/xpu_info.cc

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,23 +225,22 @@ XPUVersion get_xpu_version(int dev_id) {
225225
if (dev_id == -1) {
226226
dev_id = GetXPUCurrentDeviceId();
227227
}
228-
static std::once_flag xpu_version_init_flag;
229-
static XPUVersion xpu_version;
230-
std::call_once(xpu_version_init_flag, [&] {
228+
thread_local std::unordered_map<int, XPUVersion> xpu_version_map;
229+
if (xpu_version_map.count(dev_id) == 0) {
231230
uint64_t v = 0;
232231
PADDLE_ENFORCE_XPU_SUCCESS(xpu_device_get_attr(&v, XPUATTR_MODEL, dev_id));
233232
if (v == K100 || v == K200) {
234233
VLOG(1) << "KUNLUN device " << dev_id << " is XPU1\n";
235-
xpu_version = XPU1;
234+
xpu_version_map[dev_id] = XPU1;
236235
} else if (v < KL3_BEGIN) {
237236
VLOG(1) << "KUNLUN device " << dev_id << " is XPU2\n";
238-
xpu_version = XPU2;
237+
xpu_version_map[dev_id] = XPU2;
239238
} else {
240239
VLOG(1) << "KUNLUN device " << dev_id << " is XPU3\n";
241-
xpu_version = XPU3;
240+
xpu_version_map[dev_id] = XPU3;
242241
}
243-
});
244-
return xpu_version;
242+
}
243+
return xpu_version_map[dev_id];
245244
}
246245

247246
void set_xpu_debug_level(int level) {

0 commit comments

Comments
 (0)