NVENC ሲጀምር ሲወድቅ፡ ሞዴሎች የሞሉ ጂፒዩ እና ወደ ሌላ ማስተካከያ የሚመለስ ማሳያ

ቪዲዮ

የቪዲዮ ማሳያችን ስክሪፕቶችን የሚጽፈው የቋንቋ ሞዴል ከሚሰራበት በተመሳሳይ ማሽን ላይ ይሰራል። አንድ ማታ የሃርድዌር ኢንኮደሩ በቀላሉ አልተከፈተም፡ "CUDA_ERROR_OUT_OF_MEMORY: out of memory"፣ ከዚያም "No capable devices found"።

ምን ተከሰተ

ማሽኑ የ NVIDIA GB10 ዴስክቶፕ ሲሆን ሲፒዩው እና ጂፒዩው አንድ የማህደረ ትውስታ ገንዳ ይጋራሉ። የአካባቢ ሞዴላችንን በ vLLM ያገለግላል፣ እና Studio በተመሳሳይ ማሽን ላይ ffmpeg በመጠቀም ሲሰራ ሲቻል NVENC ይጠቀማል። በሙከራ ማሽከርከር ወቅት ኢንኮደሩ የ CUDA context ለመፍጠር አልቻለም። ስህተቱ በሰከንዶች ውስጥ መጣ እና ሄደ፡ አጭር የ NVENC ምርመራ አልፎ ከዚያ በኋላ ያለው ማሳያ ወድቋል፤ በቀጣዩ ማሽከርከር ምርመራው ራሱ ወድቋል፤ ከዚያ በኋላ ባለው ማሽከርከር ምርመራውም ማሳያውም በ NVENC አልፈዋል።

ለምን

vLLM ሲጀምር ለሞዴሉ እና ለካሺው የጂፒዩን የማህደረ ትውስታ ቋሚ ድርሻ ይይዛል። NVENC ለእያንዳንዱ የክፍለ ጊዜ CUDA context ትንሽ የራሱ የማህደረ ትውስታ ይፈልጋል። የሞዴል ሰርቨሩ እና ሌሎች ስራዎች ምንም ሲያስቀሩ፣ ኢንኮደሩ ምንም እንኳን በቺፑ ላይ የተለየ ሞተር ቢሆን እና የጂፒዩን ስሌት በጣም ቢነካውም መጀመር አይችልም።

መፍትሄው፡ በምርመራው ሳይሆን በኢንኮድ ጊዜ መወሰን

በመነሻ ላይ የሚደረግ ምርመራ NVENC ትንሽ ከዚህ በፊት እንደሰራ ይነግርዎታል፣ ለቀጣዩ ፋይል እንደሚሰራ ግን አይደለም። ስለዚህ Studio ለእያንዳንዱ ማሳያ NVENC ይሞክራል፣ ffmpeg ከወደቀ ደግሞ ተመሳሳዩን የማጣሪያ ግራፍ በ libx264 እንደገና ያሰራል። ቀጥተኛው ማስተላለፊያ ከእያንዳንዱ መጀመሪያ በፊት በቀጥተኛ ቅንብሮቹ ግማሽ ሰከንድ የሚወስድ የሙከራ ኢንኮድ ያካሄዳል፣ NVENC ከወደቀ libx264 ይጠቀማል፤ በማስተላለፊያው ወቅት የ NVENC ወይም CUDA ስህተት ከተከሰተ ቀጣዩን መጀመሪያ ወደ libx264 ይቀይራል። እያንዳንዱ የተጠናቀቀ ቪዲዮ የትኛው ኢንኮደር እንደሠራው ይመዘግባል፣ ስለዚህ ወደ ሌላ መመለስ በስራው ፋይል ውስጥ ይታያል እንጂ ሳይታወቅ አያልፍም።

ወደ ሌላ መመለስ የሚከፈለው ዋጋ

ከጠበቅነው ያነሰ። በተመሳሳይ ማሽን 20-ኮር Arm ሲፒዩ ላይ፣ libx264 የካሜራ እንቅስቃሴዎች፣ የተቀረጹ ጽሑፎች እና የድምጽ መደበኛነት ያሉበትን 12 ሰከንድ 1080p ቪዲዮ በ 7.6 ሰከንድ አሳይቷል። በቀን አንድ ጊዜ ለሚሠሩ አጫጭር ቪዲዮዎች ሲፒዩው ፍጹም ጥሩ ኢንኮደር ነው። ጂፒዩ ለኢንኮዱ ከሆነው ይልቅ ለምስል ሞዴሉ በጣም ይበልጥ አስፈላጊ ነው።

ዋናው ማስተዋል

በጋራ ማሽን ላይ የGPU ኢንኮደርን እንደ አማራጭ ይመልከቱ፡ ክፍት ሲሆን ይጠቀሙ፣ ካልከፈተ ወደ ተለማመደው ይመለሱ፣ እና የትኛውን እንደተጠቀሙ ይመዝግቡ። ይህ ለአብዛኛውን የማሽኑን ማህደረ ትውስታ የወሰደ ሞዴል ሰርቨር ባለበት ማሽን ላይ የራሱን ማህደረ ትውስታ ለሚፈልግ ማንኛውም የGPU ባህሪም ይሠራል። Studio ይህ ባህሪ በነባሪ ሁኔታ ክፍት ሆኖ ይወጣል።

ተሻሽሏል: