From 5f33e6aefe258e6f6c6eebce5c5d6088a5094972 Mon Sep 17 00:00:00 2001 From: zhuyue Date: Mon, 13 Jul 2026 09:15:15 +0000 Subject: [PATCH] fix: initialize Iluvatar device context --- src/infinicore/context/context_impl.cc | 10 ++++++++++ xmake.lua | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/infinicore/context/context_impl.cc b/src/infinicore/context/context_impl.cc index 4de56effb..cec1d820d 100644 --- a/src/infinicore/context/context_impl.cc +++ b/src/infinicore/context/context_impl.cc @@ -82,6 +82,16 @@ ContextImpl::ContextImpl() { } } + if constexpr (infini::rt::DeviceEnabled::value) { + infini::rt::set_runtime_device_type(bridge::infini::rt::translate_to(INFINI_DEVICE_ILUVATAR)); + INFINICORE_CHECK_ERROR(bridge::infini::rt::translate(infini::rt::runtime::GetDeviceCount(&device_counter[static_cast(Device::Type::ILUVATAR)]))); + runtime_table_[static_cast(Device::Type::ILUVATAR)].resize(device_counter[static_cast(Device::Type::ILUVATAR)]); + if (device_counter[static_cast(Device::Type::ILUVATAR)] > 0) { + runtime_table_[static_cast(Device::Type::ILUVATAR)][0] = std::unique_ptr(new Runtime(Device(Device::Type::ILUVATAR, 0))); + current_runtime_ = runtime_table_[static_cast(Device::Type::ILUVATAR)][0].get(); + } + } + if constexpr (infini::rt::DeviceEnabled::value) { infini::rt::set_runtime_device_type(bridge::infini::rt::translate_to(INFINI_DEVICE_ASCEND)); INFINICORE_CHECK_ERROR(bridge::infini::rt::translate(infini::rt::runtime::GetDeviceCount(&device_counter[static_cast(Device::Type::ASCEND)]))); diff --git a/xmake.lua b/xmake.lua index 960ad5dcd..9ec14e9ca 100644 --- a/xmake.lua +++ b/xmake.lua @@ -108,8 +108,8 @@ option_end() option("iluvatar_arch") set_default("ivcore20") set_showmenu(true) - set_description("Set Iluvatar GPU architecture (e.g. ivcore20)") - set_values("ivcore20") + set_description("Set Iluvatar GPU architecture") + set_values("ivcore11", "ivcore20") set_category("option") option_end()