В днешната поредица от патчове за Linux, инженерът на AMD Самеул Джанг (Sameul Zhang) посочва необичаен проблем, при който Linux сървърите не успяват да влязат в хибернация поради прекомерно количество VRAM памет и голям брой AMD Instinct ускорители на система. За справка, AMD Instinct ускорителите са мощни графични процесори, проектирани специално за центрове за данни, обработващи AI, високопроизводителни изчисления, научни задачи и др.
Част от това, което прави тези графични процесори толкова мощни, е, че те се предлагат с огромно количество VRAM, като например 192GB в някои случаи, което може да звучи огромно за геймърите, но е доста стандартно за съвременните чипове за центрове за данни. Всъщност, този сървър, задвижван от AMD AI Linux, е оборудван с общо осем Instinct карти, които имат общата VRAM памет до около 1,5TB. Въпреки че като цяло, повече VRAM е нещо добро, в случаи като този това може да доведе до неочаквани проблеми.
Въпреки, че обемът на VRAM играе роля, основната причина за проблема при хибернация не е броят на Instinct картите, а по-скоро как Linux обработва паметта на графичния процесор (GPU) по време на този процес. Когато системата инициира хибернация, цялата памет на графичния процесор (GPU) първо се разтоварва в системната RAM памет, обикновено чрез таблицата за преобразуване на графики (GTT) или споделената памет (shmem). Оттам ядрото създава изображение за хибернация, като копира цялото съдържание на системната памет (включва и извадената VRAM памет), във втора област на паметта, преди да я запише на диск.
Звучи объркващо? Ами, казано по-просто, ако вашият сървър има 1,5 TB обща VRAM памет, това дублиране може да увеличи използването на памет до 3 TB, което лесно надвишава капацитета на сървъри, оборудвани само с 2 TB системна памет. Преливането на данни в крайна сметка води до невъзможност на процеса за влизане в хибернация.
За щастие, Джанг работи по решаването на този проблем с хибернацията и предлага две основни промени. Първата е насочена към намаляване на количеството системна памет, необходимо по време на хибернация, което би позволило на процеса да завърши успешно. Това обаче води до нов проблем, тъй като етапът на „размразяване“ (когато системата се възобновява от хибернация) може да отнеме близо час поради голямото количество памет. За да се поправи това, беше добавен трети патч, който пропуска възстановяването на тези буферни обекти по време на етапа на размразяване, което значително намалява времето за възобновяване.
Сега повечето високопроизводителни AI сървъри работят непрекъснато, така че е редно да се запитаме защо някой би ги хибернирал. Една от често срещаните причини е намаляването на консумацията на енергия по време на прекъсвания и стабилизирането на електрическата мрежа. Тъй като големите центрове за данни консумират огромни количества енергия, това може да помогне за намаляване на риска от прекъсвания на електрозахранването, като това, което наскоро видяхме в Испания.
Източник: Tomshardware






