უკან დაბრუნება
Vx ჰეტეროგენულ მეხსიერებასა და ტოპოლოგიას ტიპთა სისტემაში შეიტანს
SiTech AI Team2 წთ. საკითხავი

Vx ჰეტეროგენულ მეხსიერებასა და ტოპოლოგიას ტიპთა სისტემაში შეიტანს

Vx არის სისტემური პროგრამირების ენა ჰეტეროგენული გამოთვლებისთვის, რომელიც CPU, GPU, NPU და აქსელერატორების მეხსიერებას ტიპების შემოწმების ნაწილად აქცევს, ცხადი გადატანებითა და მანქანაზე მორგებული განთავსებით.

მეხსიერების მდებარეობა ტიპის ნაწილია

Vx ჰეტეროგენულ გამოთვლებს ენის დონის საკითხად განიხილავს და აქსელერატორზე განთავსებას გაუმჭვირვალე runtime-ს არ ანდობს. NPU-ს მაღალი გამტარობის მეხსიერებაზე მიმაგრებულ ტენზორს განსხვავებული ტიპი აქვს, ვიდრე იმავე ტენზორს ჰოსტის DRAM-ში, და ამ მდებარეობებს შორის გადაადგილება ცხად გადატანას მოითხოვს. Apple-ის ერთიან მეხსიერებაზე ეს გადატანა თითქმის არაფრად კომპილირდება, მაგრამ წყაროში მაინც ჩანს, რომ მონაცემთა ლოკალურობა ბინარის პროფილირების გარეშე შემოწმდეს.

კომპილატორი ამოწმებს მოწყობილობის პოინტერებზე ჰოსტიდან არასწორ წვდომას, ჰოსტის გამოსახულებებში შემავალ მიმაგრებულ NPU მნიშვნელობებს და ისეთ განთავსებებს, რომელთა სამუშაო ნაკრები სამიზნე მეხსიერების სივრცეს აღემატება. სხვა წესები მოიცავს ასინქრონული გადატანის ხილვადობამდე წაკითხულ ბუფერებს, გადატანის შემდეგ გამოყენების შეცდომებს, მეხსიერების სივრცეებს შორის გამოცხადებული გზის გარეშე გადატანას და რეგიონებში დიფერენცირებას განსაზღვრული ადიუნგატის გარეშე. ასინქრონული გადატანის ხილვადობის კონტრაქტებს SMT პროვერი ამუშავებს.

მანქანის ფაილები ჰარდვეარის ლიმიტებს განსაზღვრავს

ღირებულების მოდელის ხისტად ჩაშენების ნაცვლად Vx კითხულობს მანქანის ფაილს, რომელიც კონკრეტული ნაწილის მეხსიერების იერარქიასა და ურთიერთკავშირს აღწერს. კომპილატორი ამ ინფორმაციას განთავსებების დაშვებისთვის ან უარყოფისთვის იყენებს. ერთეულების გარდაქმნები ზუსტ მთელ რიცხვებს იყენებს: SI პრეფიქსები ათობითია, IEC პრეფიქსები კი ორობითი, რაც ინარჩუნებს ისეთი სიდიდეების მნიშვნელობას, როგორიცაა GB და GiB.

რეპოზიტორია მოიცავს მანქანის ფაილებს H100, H200, B200, A100, MI300X, Apple M4 და მრავალ GPU კვანძებისთვის. ფაილები მიუთითებენ მათ წყაროებს და გამოყოფენ ციფრებს, რომლებიც დაუდასტურებელი რჩება.

პარალელური ფრონტენდი და მრავალი ბექენდი

Vx-ის მონაცემებზე ორიენტირებულ ფრონტენდში ყოველი სიმბოლო, ნომინალური ტიპი და მონომორფიზებული ვარიანტი ბრტყელი 256-ბიტიანი იდენტიფიკატორით წარმოდგენილია. ნომინალური ტიპების სისტემა და რეკურსიული ტიპებისთვის სავალდებულო boxing მოდულებს ერთმანეთისგან ათავისუფლებს, რაც კომპილაციის პაიპლაინს საშუალებას აძლევს ბირთვებზე გაეშვას query-ის ძრავისა და lock-ზე კონკურენციის გარეშე. კომპილაცია ბრტყელ მასივებს გადის და არა პოინტერებით მიკვლეულ ხეებს.

სატესტო ნაკრები ამტკიცებს, რომ სერიული და პარალელური აწყობები ბაიტ-იდენტურ MLIR-ს გამოსცემს სხვადასხვა ნაკადის კონფიგურაციის დროს, ბენჩმარკის მასშტაბზე. ეს გარანტია ფრონტენდის გამოსავალზე ვრცელდება; დანარჩენი დამუშავება LLVM-ს ეკუთვნის. ბექენდები მოიცავს x86-64 და arm64 CPU-ებს, NVIDIA GPU-ებს, Apple AMX და ANE-ს, და განაწილებულ manifest-ით მართულ დისტანციურ რეგიონებს. მწარმოებლებს შეუძლიათ Vx გააფართოონ MLIR pass დანამატებით, კომპილატორის დაპატჩვის ნაცვლად.

შექმნილია ფიქსირებული, წარმადობისადმი მგრძნობიარე დატვირთვებისთვის

Vx განკუთვნილია პროგრამული უზრუნველყოფისთვის, რომელიც სხვადასხვა სახის სილიკონზე სწორი და სწრაფი უნდა იყოს. პროექტი აღიარებს, რომ მისი ahead-of-time, მონაცემებზე ორიენტირებული და სტატიკურად რეგიონებულად დაყოფილი დიზაინი ნაკლებად შესაფერისია იმ სამუშაო ნაკადებისთვის, რომლებიც არქიტექტურას ცვლიან, ტენზორების ფორმებს ამოწმებენ და დინამიკურად აგრძელებენ მაშინ, როცა ეს გადაწყვეტილებები ჯერ კიდევ იცვლება. მისი ინსტალაციის ვარიანტები მოიცავს macOS-ს Apple Silicon-ზე და Linux x86_64-ს, თანმხლები სახელმძღვანელოები კი ენას, ტოპოლოგიებს, მეხსიერების განთავსებას და მანქანის ფაილებს მოიცავს.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.