gekro
GitHub LinkedIn
Infrastructure

Linux అంచు: AI కెర్నల్‌లో ఎందుకు బాగా ఊపిరి పీల్చుకుంటుంది

8 నిమిషాల పఠనం

ఇది ఆంగ్ల మూల వ్యాసానికి యంత్ర అనువాదం. కొన్ని సూక్ష్మ భేదాలు కోల్పోవచ్చు, కాబట్టి ఆంగ్ల వెర్షన్‌నే ప్రమాణంగా తీసుకోండి. మూల వ్యాసాన్ని ఆంగ్లంలో చదవండి

సంక్షిప్తంగా

నేను Windows రిజిస్ట్రీ ఎర్రర్లతో పోరాడటం ఎందుకు ఆపి, నా మొత్తం AI ఇంజినీరింగ్ ల్యాబ్‌ను WSL2, Ubuntu Server కు ఎందుకు మార్చానో.
Windows మనుషులకు గొప్ప OS, కానీ ఏజెంట్లకు ఊపిరాడని వాతావరణం. AI లైబ్రరీలు POSIX-అనుకూల హృదయాన్ని ఆశిస్తాయి కాబట్టి నేను Gekro ను WSL2/Ubuntu కోర్‌కు మార్చాను. ఈ వ్యాసం CUDA-పాస్‌త్రూ సెటప్‌ను విడమరుస్తుంది, పెరుగుతున్న స్వయంప్రతిపత్త సేవల సముదాయాన్ని నిర్వహించడానికి Linux పై Docker ఎందుకు ఏకైక మార్గమో చెబుతుంది.

మీరు వినియోగదారు ఆపరేటింగ్ సిస్టమ్‌పై AI ల్యాబ్ నిర్మిస్తుంటే, రెండు ముఖాల్లో యుద్ధం చేస్తున్నారు: మీ కోడ్, మీ OS. AI యుగంలో Linux మేధస్సు మాతృభాష. సంక్లిష్టమైన Python డిపెండెన్సీలను Windows పాత్‌లతో, DLL లతో సర్దుబాటు చేయడానికి నేను ఆరు నెలలు ప్రయత్నించి, చివరికి నిజాన్ని అంగీకరించాను: మోడల్ వెయిట్లను Linux క్లస్టర్లలో ట్రైన్ చేసి ఉంటే, ఇన్ఫరెన్స్ కూడా Linux కెర్నల్స్‌పైనే జరగాలి. DFW లో హెడ్‌లెస్ Ubuntu వర్క్‌ఫ్లోకు కట్టుబడిన క్షణం నుంచి, నా కోడ్ గురించి కాకుండా నా ఆపరేటింగ్ సిస్టమ్ గురించి ఉండే డీబగ్గింగ్ దాదాపు పూర్తిగా ఆగిపోయింది.

నిర్ణయాన్ని ఖరారు చేసిన విషయం: AI రూపొందించిన PowerShell విఫలమవడం, మళ్లీ ప్రయత్నించడం, మళ్లీ విఫలమవడం, ఆ క్రమంలో టోకెన్లు కాల్చేయడం చూడటం. ఒకసారి కాదు, ఒక నమూనాగా. ఇది ఈరోజుకూ జరుగుతోంది, అందుకే దాన్ని సరిచేయడానికి ప్రయత్నించకుండా ఏజెంట్ పని కోసం PowerShell ను వదిలేశాను.

ఆర్కిటెక్చర్

నా ల్యాబ్‌లోని “Edge” అంటే హార్డ్‌వేర్‌కు నేరుగా, మధ్యవర్తి లేని ప్రాప్యత. Windows మీ కోడ్‌కు, మీ GPU కు మధ్య “Desktop Window Manager” (DWM) గోల యొక్క ఒక పొరను జోడిస్తుంది. Linux హార్డ్‌వేర్ పాస్‌త్రూను అనుమతిస్తుంది, ఇది బేర్ మెటల్ లాగా అనిపిస్తుంది.

లక్షణంWindows (నేటివ్)WSL2 (Ubuntu 22.04+)Ubuntu Server (బేర్ మెటల్)
GPU యాక్సెస్DirectX / CUDA (భారీ)CUDA పాస్‌త్రూ (దాదాపు నేటివ్)నేరుగా CUDA (అత్యంత వేగం)
I/O పనితీరువేగం (NTFS)వేగం (VHDX లోపల)అత్యంత వేగం (ext4/zfs)
Docker ఇంజిన్Hyper-V VM (నెమ్మది)WSL2 బ్యాకెండ్ (సమర్థవంతం)నేటివ్ Cgroups (తక్షణం)
స్థిరత్వంఆటోమేటిక్ అప్‌డేట్‌లు (ప్రమాదం)వినియోగదారు నిర్వహణ99.9% అప్‌టైమ్

నా ల్యాబ్‌లో WSL2 ను “ఆపరేటర్ కన్సోల్”గా, నా Raspberry Pi క్లస్టర్‌పై Ubuntu Server ను “ప్రొడక్షన్ Edge”గా వాడతాను.

నిర్మాణం

అధిక వేగం గల AI వాతావరణాన్ని సెటప్ చేయడానికి కేవలం apt install కన్నా ఎక్కువ కావాలి. Windows హార్డ్‌వేర్‌ను Linux లాజిక్‌తో వంతెన వేయాలి.

1. WSL2 లో CUDA ప్రారంభించడం

Windows ఆధారిత ల్యాబ్ “సీక్రెట్ సాస్” NVIDIA WSL డ్రైవర్. పూర్తి వర్చువల్ మెషీన్ భారం లేకుండా మీ PC GPU ని Linux కెర్నల్ “చూడగలిగేలా” ఇది చేస్తుంది.

# Verify GPU visibility inside WSL2
nvidia-smi

# If you see your GPU here, you're ready for local LLMs
# If not, you need to install the 'NVIDIA Game Ready' or 'Studio' driver on the Windows host.

2. Docker-AI స్టాక్

నేను హోస్ట్‌పై ఎప్పుడూ pip ప్యాకేజీలను ఇన్‌స్టాల్ చేయను. ప్రతి మోడల్‌కు Docker కంటైనర్లు వాడతాను. ఇది ఒక ఏజెంట్‌కు Python 3.10, మరొకదానికి 3.12 కావలసి వచ్చే “డిపెండెన్సీ హెల్”ను నివారిస్తుంది.

లోకల్ Gekro నోడ్ కోసం docker-compose.yml:

services:
  ollama:
    image: ollama/ollama
    volumes:
      - ./ollama_data:/root/.ollama
    ports:
      - "11434:11434"
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

  summarizer-agent:
    build: ./agents/summarizer
    environment:
      - OLLAMA_HOST=http://ollama:11434
    depends_on:
      - ollama

3. WSL2 గమనిక: మెమరీ నిర్వహణ

డిఫాల్ట్‌గా WSL2 మీ Windows RAM మొత్తాన్ని తినేయడానికి ప్రయత్నిస్తుంది. Windows లోని నా Tesla టెలిమెట్రీ స్క్రిప్ట్‌లు క్రాష్ కాకుండా దాన్ని 16GB కు పరిమితం చేస్తాను. మీ యూజర్ ఫోల్డర్‌లో ఒక .wslconfig సృష్టించండి:

[wsl2]
memory=16GB
processors=8

రాజీలు

బాధ గురించి మాట్లాడుకుందాం: సింబాలిక్ లింక్‌లు, ఫైల్ పనితీరు. మీ కోడ్‌ను Windows C: డ్రైవ్‌లో ఉంచి WSL2 లోపల నడపడానికి ప్రయత్నిస్తే, 9P ప్రోటోకాల్ అనువాదం వల్ల అది 10 రెట్లు నెమ్మదిగా ఉంటుంది. నా వెక్టర్ డేటాబేస్ ఎందుకు పాకుతోందో ఆలోచిస్తూ నేను ఒక వారం ఉత్పాదకతను కోల్పోయాను; తర్వాత మొత్తం ప్రాజెక్ట్ ఫోల్డర్‌ను Linux ఫైల్ సిస్టమ్ లోపలికి (/home/rohit/gkro) తరలించాలని గ్రహించాను.

నేను మిస్ అయ్యేది ఇంటర్‌ఆపరబిలిటీ. Windows లో స్క్రీన్ ఒక వైపు అప్‌డేట్‌లు జరుగుతుండగా మరో వైపు పని చేసుకోగలిగేవాణ్ని, లేదా ఒక జనరేటర్‌ను నడిపిస్తూ వేరే పనికి వెళ్లగలిగేవాణ్ని. అది ఇప్పుడు చాలావరకు పోయింది, దానికి శుభ్రమైన ప్రత్యామ్నాయం నాకు దొరకలేదు.

వలస ప్రక్రియ నేను ఊహించిన దానికన్నా సున్నితంగా సాగింది. కొత్త వ్యవస్థ నన్ను కుదిపేస్తుందని సిద్ధపడ్డాను, చాలావరకు అలా జరగలేదు. మిగతా వాటన్నిటికన్నా చాలా ఎక్కువ సమయం పట్టింది ఫైల్ సింక్: OneDrive ను సరిగా పనిచేయించడం, ఫైళ్లను Raspberry Pi లకు నమ్మకంగా చేర్చడం. ఇంకా మిస్ అయ్యేది కండరాల జ్ఞాపకం. రెండు దశాబ్దాల Windows కమాండ్‌లు పోయాయి, Linux లో సౌకర్యంగా ఉండటం వాటిని తిరిగి ఇవ్వదు.

అలాగే, VRAM పరిమితమైన వనరు. Windows లో నా Chrome లో 50 ట్యాబ్‌లు తెరిచి ఉంటే, అది WSL2 లోని నా Llama 3 ఇన్‌స్టెన్స్ నుంచి VRAM ను దొంగిలిస్తోంది. సంకర వాతావరణంలో మెమరీని కనికరం లేకుండా వెతికి పట్టుకునేవాడిగా మారడం నేర్చుకోవాలి.

ఇది ఎటు వెళ్తుంది

నేను సింగిల్-పేన్-ఆఫ్-గ్లాస్ నిర్వహణ లేయర్ వైపు వెళ్తున్నాను: నా అన్ని Linux నోడ్‌ల (Pi లు, PC లు) CPU/GPU ఉష్ణోగ్రతను, RAM వినియోగాన్ని రియల్-టైమ్‌లో గమనించే Astro లోని కస్టమ్ డ్యాష్‌బోర్డ్. నా ఇంటి నెట్‌వర్క్‌ను మినీ-AWS రీజియన్‌లా చూడటమే లక్ష్యం, అక్కడ OS కేవలం ఒక వివరం, ఏజెంట్లే ప్రధాన పౌరులు.

Rohit Burani

రచయిత

Rohit Burani

AI ఇంజినీర్. ల్యాబ్ నుంచి లోకల్-ఫస్ట్ సిస్టమ్‌లు, సెల్ఫ్-హోస్టెడ్ ఇన్‌ఫ్రాస్ట్రక్చర్, స్వయంచాలక టూల్స్ నిర్మిస్తారు.