Skip to content

Commit

Permalink
feat: add support for Gaudi2 accelerator
Browse files Browse the repository at this point in the history
  • Loading branch information
kyujin-cho authored and yomybaby committed Sep 3, 2024
1 parent 471c556 commit bf7d666
Show file tree
Hide file tree
Showing 47 changed files with 645 additions and 301 deletions.
3 changes: 3 additions & 0 deletions .cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,17 @@
"backendaioptions",
"cssinjs",
"cuda",
"FGPU",
"Frgmt",
"Gaudi",
"keypair",
"Lablup",
"OPENBLAS",
"Popconfirm",
"preopen",
"shmem",
"vfolders",
"Warboy",
"webcomponent",
"webui",
"wsproxy",
Expand Down
1 change: 1 addition & 0 deletions config.toml.sample
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ maxTPUDevicesPerContainer = 8 # Maximum TPU devices per container.
maxIPUDevicesPerContainer = 8 # Maximum IPU devices per container.
maxATOMDevicesPerContainer = 8 # Maximum ATOM devices per container.
maxATOMPLUSDevicesPerContainer = 8 # Maximum ATOM_PLUS devices per container.
maxGaudi2DevicesPerContainer = 8 # Maximum Gaudi 2 devices per container.
maxWarboyDevicesPerContainer = 8 # Maximum Warboy devices per container.
maxHyperaccelLPUDevicesPerContainer = 8 # Maximum Hyperaccel LPU devices per container.
maxShmPerContainer = 16 # Maximum shared memory per container.
Expand Down
5 changes: 1 addition & 4 deletions react/src/components/AgentList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -372,10 +372,7 @@ const AgentList: React.FC<AgentListProps> = ({
/>
</Flex>
);
} else if (
parsedOccupiedSlots[key] &&
parsedAvailableSlots[key]
) {
} else if (parsedAvailableSlots[key]) {
return (
<Flex
key={key}
Expand Down
2 changes: 1 addition & 1 deletion react/src/components/ResourceGroupSelect.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useBaiSignedRequestWithPromise } from '../helper';
import { useUpdatableState } from '../hooks';
import useControllableState from '../hooks/useControllableState';
import { useSuspenseTanQuery } from '../hooks/reactQueryAlias';
import useControllableState from '../hooks/useControllableState';
import { useCurrentProjectValue } from '../hooks/useCurrentProject';
import TextHighlighter from './TextHighlighter';
import { Select, SelectProps } from 'antd';
Expand Down
2 changes: 2 additions & 0 deletions react/src/components/ResourceNumber.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ export const ACCELERATOR_UNIT_MAP: {
'ipu.device': 'IPU',
'atom.device': 'ATOM',
'atom-plus.device': 'ATOM+',
'gaudi2.device': 'Gaudi 2',
'warboy.device': 'Warboy',
'hyperaccel-lpu.device': 'Hyperaccel LPU',
};
Expand Down Expand Up @@ -142,6 +143,7 @@ export const ResourceTypeIcon: React.FC<AccTypeIconProps> = ({
'ipu.device': [<MWCIconWrap size={size}>view_module</MWCIconWrap>, 'IPU'],
'atom.device': ['/resources/icons/rebel.svg', 'ATOM'],
'atom-plus.device': ['/resources/icons/rebel.svg', 'ATOM+'],
'gaudi2.device': ['/resources/icons/gaudi.svg', 'Gaudi 2'],
'warboy.device': ['/resources/icons/furiosa.svg', 'Warboy'],
'hyperaccel-lpu.device': [
'/resources/icons/npu_generic.svg',
Expand Down
2 changes: 2 additions & 0 deletions react/src/components/ServiceLauncherPageContent.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ interface ServiceCreateConfigResourceType {
'tpu.device'?: number | string;
'ipu.device'?: number | string;
'atom.device'?: number | string;
'gaudi2.device'?: number | string;
'atom-plus.device'?: number | string;
'warboy.device'?: number | string;
'hyperaccel-lpu.device'?: number | string;
}
Expand Down
2 changes: 1 addition & 1 deletion react/src/components/VFolderSelect.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { useBaiSignedRequestWithPromise } from '../helper';
import { useUpdatableState } from '../hooks';
import useControllableState from '../hooks/useControllableState';
import { useSuspenseTanQuery } from '../hooks/reactQueryAlias';
import useControllableState from '../hooks/useControllableState';
import { useCurrentProjectValue } from '../hooks/useCurrentProject';
import { Select, SelectProps } from 'antd';
import _ from 'lodash';
Expand Down
2 changes: 1 addition & 1 deletion react/src/components/VFolderTable.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { useBaiSignedRequestWithPromise } from '../helper';
import { useSuspendedBackendaiClient, useUpdatableState } from '../hooks';
import { useKeyPairLazyLoadQuery } from '../hooks/hooksUsingRelay';
import useControllableState from '../hooks/useControllableState';
import { useSuspenseTanQuery } from '../hooks/reactQueryAlias';
import useControllableState from '../hooks/useControllableState';
import { useCurrentProjectValue } from '../hooks/useCurrentProject';
import { useEventNotStable } from '../hooks/useEventNotStable';
import { useShadowRoot } from './DefaultProviders';
Expand Down
1 change: 0 additions & 1 deletion react/src/helper/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,6 @@ export function iSizeToSize(
};
}

//
export function toFixedFloorWithoutTrailingZeros(
num: number | string,
fixed: number,
Expand Down
1 change: 1 addition & 0 deletions react/src/hooks/backendai.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ export const useResourceSlots = () => {
'ipu.device'?: string;
'atom.device'?: string;
'atom-plus.device'?: string;
'gaudi2.device'?: string;
'warboy.device'?: string;
'hyperaccel-lpu.device'?: string;
[key: string]: string | undefined;
Expand Down
2 changes: 2 additions & 0 deletions react/src/hooks/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,8 @@ type BackendAIConfig = {
maxTPUDevicesPerContainer: number;
maxIPUDevicesPerContainer: number;
maxATOMDevicesPerContainer: number;
maxATOMPlusDevicesPerContainer: number;
maxGaudi2DevicesPerContainer: number;
maxWarboyDevicesPerContainer: number;
maxShmPerContainer: number;
maxFileUploadSize: number;
Expand Down
1 change: 1 addition & 0 deletions react/src/hooks/useResourceLimitAndRemaining.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,7 @@ export const useResourceLimitAndRemaining = ({
'ipu.device': 'maxIPUDevicesPerContainer',
'atom.device': 'maxATOMDevicesPerContainer',
'atom-plus.device': 'maxATOMPlusDevicesPerContainer',
'gaudi2.device': 'maxGaudi2DevicesPerContainer',
'warboy.device': 'maxWarboyDevicesPerContainer',
'hyperaccel-lpu.device': 'maxHyperaccelLPUDevicesPerContainer', // FIXME: add maxLPUDevicesPerContainer to config
}[key] || 'cuda.device'; // FIXME: temporally `cuda.device` config, when undefined
Expand Down
11 changes: 11 additions & 0 deletions resources/device_metadata.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,17 @@
},
"display_icon": "rebel"
},
"gaudi2.device" : {
"slot_name": "gaudi2.device",
"description": "Gaudi 2",
"human_readable_name": "Gaudi 2 Device",
"display_unit": "Gaudi 2",
"number_format": {
"binary": false,
"round_length": 0
},
"display_icon": "gaudi"
},
"warboy.device": {
"slot_name": "warboy.device",
"description": "Furiosa Warboy",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@
"EnvironmentAndVersion": "Umgebung und Version",
"Tags": "Stichworte",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Ermöglicht",
"ForceTerminateWarningMsg": "Diese Aktion beendet oder bricht die Sitzung ab, unabhängig von ihrem aktuellen Status. \nBist du sicher?",
"WarningForceTerminateSessions": "Warnung: Beendigung der Sitzung(en) erzwingen",
"ForceTerminateWarningMsg2": "Nur ausführen, wenn sich der Zustand über einen unangemessen langen Zeitraum nicht ändert.",
Expand Down Expand Up @@ -1242,7 +1243,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Verwenden Sie den Hyperaccel LPU-Beschleuniger.",
"RequireHyperaccelLPUPlugin": "Erfordert das Backend.AI Hyperaccel LPU-Plugin.",
"SearchPlaceholder": "Suche"
"SearchPlaceholder": "Suche",
"Gaudi2Support": "Gaudi 2-Unterstützung",
"RequireGaudi2Plugin": "Erfordert das Backend.AI Gaudi 2-Plugin.",
"DescGaudi2Support": "Verwenden Sie den Intel Gaudi 2-Beschleuniger",
"ATOMPlusSupport": "ATOM+ Unterstützung",
"RequireATOMPlusPlugin": "Erfordert das Backend.AI ATOM+ Plugin.",
"DescATOMPlusSupport": "Benutzen Sie den ATOM+ Beschleuniger von Rebellions."
},
"notification": {
"SuccessfullyUpdated": "Erfolgreich aktualisiert",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/el.json
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@
"EnvironmentAndVersion": "Περιβάλλον και Έκδοση",
"Tags": "Ετικέτες",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Ενεργοποιημένο",
"ForceTerminateWarningMsg": "Αυτή η ενέργεια θα τερματίσει ή θα ακυρώσει τη συνεδρία ανεξάρτητα από την τρέχουσα κατάστασή της. \nΕίσαι σίγουρος?",
"WarningForceTerminateSessions": "Προειδοποίηση: Αναγκαστικός τερματισμός συνεδρίας",
"ForceTerminateWarningMsg2": "Εκτελέστε μόνο όταν η κατάσταση δεν αλλάζει για αδικαιολόγητα μεγάλο χρονικό διάστημα.",
Expand Down Expand Up @@ -1242,7 +1243,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Χρησιμοποιήστε τον επιταχυντή Hyperaccel LPU.",
"RequireHyperaccelLPUPlugin": "Απαιτεί το πρόσθετο Backend.AI Hyperaccel LPU.",
"SearchPlaceholder": "Αναζήτηση"
"SearchPlaceholder": "Αναζήτηση",
"Gaudi2Support": "Υποστήριξη Gaudi 2",
"RequireGaudi2Plugin": "Απαιτεί το πρόσθετο Backend.AI Gaudi 2.",
"DescGaudi2Support": "Χρησιμοποιήστε τον επιταχυντή intel Gaudi 2",
"ATOMPlusSupport": "Υποστήριξη ATOM+",
"RequireATOMPlusPlugin": "Απαιτεί πρόσθετο Backend.AI ATOM+.",
"DescATOMPlusSupport": "Χρησιμοποιήστε τον επιταχυντή Rebellions ATOM+."
},
"notification": {
"SuccessfullyUpdated": "Ενημερώθηκε με επιτυχία",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -424,6 +424,7 @@
"EnvironmentAndVersion": "Environment and Version",
"Tags": "Tags",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Enabled",
"ForceTerminateWarningMsg": "This action will terminate or cancel the session regardless of its current status. Are you sure?",
"WarningForceTerminateSessions": "Warning: Force Terminate Session(s)",
"ForceTerminateWarningMsg2": "Execute only when the state does not change for an unreasonably long period of time.",
Expand Down Expand Up @@ -1367,7 +1368,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Use Hyperaccel LPU accelerator.",
"RequireHyperaccelLPUPlugin": "Requires Backend.AI Hyperaccel LPU Plugin.",
"SearchPlaceholder": "Search"
"SearchPlaceholder": "Search",
"Gaudi2Support": "Gaudi 2 Support",
"RequireGaudi2Plugin": "Requires Backend.AI Gaudi 2 Plugin.",
"DescGaudi2Support": "Use intel Gaudi2 accelerator",
"ATOMPlusSupport": "ATOM+ Support",
"RequireATOMPlusPlugin": "Requires Backend.AI ATOM+ Plugin.",
"DescATOMPlusSupport": "Use Rebellions ATOM+ accelerator."
},
"notification": {
"SuccessfullyUpdated": "Successfully Updated",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -1278,6 +1278,7 @@
"EnvironmentAndVersion": "Entorno y versión",
"Tags": "Etiquetas",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Activado",
"ForceTerminateWarningMsg": "Esta acción terminará o cancelará la sesión independientemente de su estado actual. \n¿Está seguro?",
"WarningForceTerminateSessions": "Advertencia: Forzar la finalización de sesiones",
"ForceTerminateWarningMsg2": "Ejecutar solo cuando el estado no cambie durante un período de tiempo excesivamente largo.",
Expand Down Expand Up @@ -1351,7 +1352,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Utilice el acelerador Hyperaccel LPU.",
"RequireHyperaccelLPUPlugin": "Requiere el complemento LPU Backend.AI Hyperaccel.",
"SearchPlaceholder": "Buscar en"
"SearchPlaceholder": "Buscar en",
"Gaudi2Support": "Soporte Gaudí 2",
"RequireGaudi2Plugin": "Requiere el complemento Backend.AI Gaudi 2.",
"DescGaudi2Support": "Utilice el acelerador Intel Gaudí 2",
"ATOMPlusSupport": "Soporte ATOM+",
"RequireATOMPlusPlugin": "Requiere el complemento Backend.AI ATOM+.",
"DescATOMPlusSupport": "Usa el acelerador ATOM+ de Rebellions."
},
"sidepanel": {
"BackgroundTasks": "Tareas en curso",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -1275,6 +1275,7 @@
"EnvironmentAndVersion": "Ympäristö ja versio",
"Tags": "Tunnisteet",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Käytössä",
"ForceTerminateWarningMsg": "Tämä toiminto lopettaa tai peruuttaa istunnon riippumatta sen nykyisestä tilasta. \nOletko varma?",
"WarningForceTerminateSessions": "Varoitus: pakota lopettamaan istunnot",
"ForceTerminateWarningMsg2": "Suorita vain, kun tila ei muutu kohtuuttoman pitkään.",
Expand Down Expand Up @@ -1348,7 +1349,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Käytä Hyperaccel LPU -kiihdytintä.",
"RequireHyperaccelLPUPlugin": "Vaatii Backend.AI Hyperaccel LPU -laajennuksen.",
"SearchPlaceholder": "Etsi"
"SearchPlaceholder": "Etsi",
"Gaudi2Support": "Gaudi 2 -tuki",
"RequireGaudi2Plugin": "Vaatii Backend.AI Gaudi 2-laajennuksen.",
"DescGaudi2Support": "Käytä Intel Gaudi 2 -kiihdytintä",
"ATOMPlusSupport": "ATOM+-tuki",
"RequireATOMPlusPlugin": "Vaatii Backend.AI ATOM+ laajennuksen.",
"DescATOMPlusSupport": "Käytä Rebellions ATOM+ -kiihdytintä."
},
"sidepanel": {
"BackgroundTasks": "Tehtävien suorittaminen",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@
"EnvironmentAndVersion": "Environnement et version",
"Tags": "Mots clés",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Activé",
"ForceTerminateWarningMsg": "Cette action mettra fin ou annulera la session quel que soit son statut actuel. \nEs-tu sûr?",
"WarningForceTerminateSessions": "Avertissement : Forcer la fin des sessions",
"ForceTerminateWarningMsg2": "Exécuter uniquement lorsque l’état ne change pas pendant une période de temps déraisonnablement longue.",
Expand Down Expand Up @@ -1242,7 +1243,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Utilisez l'accélérateur Hyperaccel LPU.",
"RequireHyperaccelLPUPlugin": "Nécessite le plugin LPU Backend.AI Hyperaccel.",
"SearchPlaceholder": "Recherche"
"SearchPlaceholder": "Recherche",
"Gaudi2Support": "Assistance Gaudi 2",
"RequireGaudi2Plugin": "Nécessite le plugin Backend.AI Gaudi 2.",
"DescGaudi2Support": "Utiliser l'accélérateur Intel Gaudi 2",
"ATOMPlusSupport": "Prise en charge ATOM+",
"RequireATOMPlusPlugin": "Nécessite le plugin Backend.AI ATOM+.",
"DescATOMPlusSupport": "Utilisez l’accélérateur Rebellions ATOM+."
},
"notification": {
"SuccessfullyUpdated": "Mise à jour réussie",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/id.json
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@
"Tags": "Tag",
"Agents": "Agen",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Diaktifkan",
"ForceTerminateWarningMsg": "Tindakan ini akan mengakhiri atau membatalkan sesi terlepas dari statusnya saat ini. \nApa kamu yakin?",
"WarningForceTerminateSessions": "Peringatan: Paksa Mengakhiri Sesi",
"ForceTerminateWarningMsg2": "Jalankan hanya ketika keadaan tidak berubah dalam jangka waktu yang terlalu lama.",
Expand Down Expand Up @@ -1243,7 +1244,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Gunakan akselerator Hyperaccel LPU.",
"RequireHyperaccelLPUPlugin": "Memerlukan Plugin LPU Backend.AI Hyperaccel.",
"SearchPlaceholder": "Pencarian"
"SearchPlaceholder": "Pencarian",
"Gaudi2Support": "Dukungan Gaudi 2",
"RequireGaudi2Plugin": "Membutuhkan Plugin Backend.AI Gaudi 2.",
"DescGaudi2Support": "Gunakan akselerator intel Gaudi 2",
"ATOMPlusSupport": "Dukungan ATOM+",
"RequireATOMPlusPlugin": "Membutuhkan Plugin Backend.AI ATOM+.",
"DescATOMPlusSupport": "Gunakan akselerator ATOM+ Rebellions."
},
"notification": {
"SuccessfullyUpdated": "Berhasil Diperbarui",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@
"EnvironmentAndVersion": "Ambiente e versione",
"Tags": "Tag",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU Abilitato",
"ForceTerminateWarningMsg": "Questa azione terminerà o annullerà la sessione indipendentemente dal suo stato attuale. \nSei sicuro?",
"WarningForceTerminateSessions": "Avviso: forza la chiusura delle sessioni",
"ForceTerminateWarningMsg2": "Eseguire solo quando lo stato non cambia per un periodo di tempo irragionevolmente lungo.",
Expand Down Expand Up @@ -1242,7 +1243,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Utilizzare l'acceleratore Hyperaccel LPU.",
"RequireHyperaccelLPUPlugin": "Richiede il plugin Backend.AI Hyperaccel LPU.",
"SearchPlaceholder": "Ricerca"
"SearchPlaceholder": "Ricerca",
"Gaudi2Support": "Supporto Gaudì 2",
"RequireGaudi2Plugin": "Richiede il plugin Backend.AI Gaudi 2.",
"DescGaudi2Support": "Utilizza l'acceleratore Intel Gaudi 2",
"ATOMPlusSupport": "Supporto ATOM+",
"RequireATOMPlusPlugin": "Richiede il plugin Backend.AI ATOM+.",
"DescATOMPlusSupport": "Usa l'acceleratore ATOM+ di Rebellions."
},
"notification": {
"SuccessfullyUpdated": "Aggiornato con successo",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -410,6 +410,7 @@
"EnvironmentAndVersion": "環境とバージョン",
"Tags": "タグ",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU 有効",
"ForceTerminateWarningMsg": "このアクションにより、現在のステータスに関係なくセッションが終了またはキャンセルされます。\n本気ですか?",
"WarningForceTerminateSessions": "警告: セッションを強制終了します",
"ForceTerminateWarningMsg2": "状態が不当に長時間変化しない場合にのみ実行してください。",
Expand Down Expand Up @@ -1241,7 +1242,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Hyperaccel LPU アクセラレータを使用します。",
"RequireHyperaccelLPUPlugin": "Backend.AI Hyperaccel LPU プラグインが必要です。",
"SearchPlaceholder": "検索"
"SearchPlaceholder": "検索",
"Gaudi2Support": "Gaudi 2 のサポート",
"RequireGaudi2Plugin": "Backend.AI Gaudi 2 プラグインが必要です。",
"DescGaudi2Support": "Intel Gaudi 2 アクセラレータを使用する",
"ATOMPlusSupport": "アトムのサポート",
"RequireATOMPlusPlugin": "Backend.AI ATOM+プラグインが必要です。",
"DescATOMPlusSupport": "Rebellions ATOM+ アクセラレータを使用します。"
},
"notification": {
"SuccessfullyUpdated": "正常に更新されました",
Expand Down
9 changes: 8 additions & 1 deletion resources/i18n/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@
"EnvironmentAndVersion": "환경 및 버전",
"Tags": "태그",
"fGPU": "fGPU",
"Gaudi2Enabled": "Gaudi 2 NPU 사용중",
"ForceTerminateWarningMsg": "실제 컨테이너 상태와 상관 없이 세션을 종료 또는 취소 처리합니다. 계속하시겠습니까?",
"WarningForceTerminateSessions": "경고: 세션 강제 종료",
"ForceTerminateWarningMsg2": "세션을 생성하거나 종료했는데 비정상적으로 오랫동안 상태가 변하지 않을 경우에만 사용하십시오.",
Expand Down Expand Up @@ -1354,7 +1355,13 @@
"HyperaccelLPUsupport": "Hyperaccel LPU",
"DescHyperaccelLPUsupport": "Hyperaccel LPU 가속기를 사용합니다.",
"RequireHyperaccelLPUPlugin": "Backend.AI Hyperaccel LPU 플러그인이 필요합니다.",
"SearchPlaceholder": "검색"
"SearchPlaceholder": "검색",
"Gaudi2Support": "Gaudi 2 지원",
"RequireGaudi2Plugin": "Backend.AI Gaudi 2 플러그인이 필요합니다.",
"DescGaudi2Support": "Intel Gaudi 2 가속기 사용",
"ATOMPlusSupport": "ATOM+ 지원",
"RequireATOMPlusPlugin": "Backend.AI ATOM+ 플러그인이 필요합니다.",
"DescATOMPlusSupport": "Rebellions ATOM+ 가속기를 사용."
},
"notification": {
"SuccessfullyUpdated": "성공적으로 수정되었습니다.",
Expand Down
Loading

0 comments on commit bf7d666

Please sign in to comment.