Vx – One Language, Every Chip
🇬🇧 English
Vx is a systems programming language for heterogeneous computing where CPU, GPU, NPU and accelerator memory are part of the type system. A host thread dereferencing a device pointer is a compile error, not a segfault. It is available for macOS on Apple Silicon and Linux x86_64. Heterogeneity belongs in the type system, not the runtime. Where data lives is part of its type. Most languages treat the accelerator as infrastructure: you write math, and a large opaque runtime decides how to ship it. Vx treats it as semantics. A tensor pinned to NPU high-bandwidth memory has a different type from one in host DRAM, and crossing between them takes an explicit transfer() — even when the hardware boundary is free. On Apple's unified memory that transfer compiles to almost nothing. It is still written down, because data locality should be provable by reading the source rather than by profiling the binary.
The compiler rules out address-space typing, capacity admission, seam contracts, linear types, topology reachability, and autodiff issues. The machine is declared, not assumed. Most compilers hard-code a cost model. Vx reads one. A machine file describes the memory hierarchy and interconnect of a real part, and the compiler admits or rejects placements against it. Units are exact integer conversions, never floats: SI prefixes are decimal (GB = 10^9), IEC are binary (GiB = 2^30). A figure copied off a vendor sheet means what the sheet meant. The repository ships machine files for H100, H200, B200, A100, MI300X, Apple M4 and multi-GPU nodes — each citing its sources, and marking unverified figures as unverified.
How it compiles: A data-oriented parallel frontend. Every symbol, nominal type and monomorphized variant is a flat 256-bit identifier. A nominal type system plus mandatory boxing for recursive types decouples modules, so the pipeline runs parallel across cores with no query engine and no lock contention. Compilation walks flat arrays rather than pointer-chased trees. The same source compiles to byte-identical MLIR whether it is built serially or in parallel. That is asserted in the test suite rather than hoped for — at benchmark scale, at one thread, at four, and with the thread pool taken off the path entirely, plus a corpus recompiled in fresh processes so each run gets its own hash seed.
🇸🇦 العربية
لغة Vx: لغة واحدة، كل شريحة
Vx هي لغة برمجة أنظمة للحوسبة غير المتجانسة حيث تكون ذاكرة وحدة المعالجة المركزية، ووحدة معالجة الرسومات، ووحدة معالجة الشبكات العصبية، والتسارعات جزءًا من نظام الأنواع. خيط المضيف الذي يلغي إشارة مؤشر الجهاز هو خطأ ترجمة، وليس خطأ تجزئة. إنها متوفرة لنظام macOS على شرائح أبل ولينكس x86_64. الانتماء غير المتجانس يجب أن يكون في نظام الأنواع، وليس في وقت التشغيل. مكان وجود البيانات هو جزء من نوعها. معظم اللغات تعامل المسرع كهيكل تحتية: تكتب الرياضيات، ويقرر وقت تشغيل كبير ومعتم كيفية إرساله. Vx تتعامل معه كدلالة.텐sor مثبت في ذاكرة NPU عالية النطاق الترددي له نوع مختلف عن واحد في ذاكرة DRAM للمضيف، والانتقال بينهما يتطلب استدعاءً صريحًا لـ transfer() — حتى عندما تكون الحدود hardware حرة. على الذاكرة الموحدة لأبل، يترجم هذا الاستدعاء إلى تقريبًا لا شيء. ومع ذلك، لا يزال يُكتب، لأن محلية البيانات يجب أن تكون قابلة للإثبات من خلال قراءة المصدر وليس من خلال تحليل الثنائي.
يقوم المترجم باستبعاد كتابة عناوين الفضاء، وقبول السعة، وعقود الوصل، والأنواع الخطية، وقابلية الوصول إلى topology، ومشاكل الاشتقاق التلقائي. يتم الإعلان عن الآلة، وليس افتراضها. معظم المترجمات تُشفّر نموذج تكلفة ثابتًا. Vx تقرأ واحدًا. ملف الآلة يصف تسلسل الذاكرة والاتصال interconnect لجزء حقيقي، والمترجم يقبل أو يرفض التوزيعات ضده. الوحدات هي تحويلات عددية صحيحة دقيقة، nunca floats: البادئات SI هي عشرية (GB = 10^9)، و IEC هي ثنائية (GiB = 2^30). رقم تم نسخه من ورقة بيانات المورد يعني ما قصدته الورقة. يحتوي المستودع على ملفات آلة لـ H100، H200، B200، A100، MI300X، Apple M4 وعقد GPU متعددة — كل منها يذكر مصادره، ويشير إلى الأرقام غير المُتحقق منها بأنها غير مُتحققة.
كيف يتم التجميع: واجهة أمامية متوازية موجهة نحو البيانات. كل رمز، ونوع اسمي، ومتغير أحادي الشكل هو معرّف مسطّح من 256 بت. نظام الأنواع الاسمي بالإضافة إلى التعبئة الإلزامية للأنواع المتكررة يفصل الوحدات، بحيث يعمل خط الأنابيب بالتوازي عبر النوى دون محرك استعلامات وبدون منافسة على القفل. يمر التجميع عبر المصفوفات المسطحة بدلاً من الأشجار التي تتبع المؤشرات. نفس المصدر يُترجم إلى MLIR متطابق على مستوى البايت سواء تم بناؤه تسلسليًا أو متوازيًا. هذا يُؤكد في مجموعة الاختبارات بدلًا من أن يكون مجرد أمل — على مقياس المعيار، في خيط واحد، وفي أربعة خيوط، ومع إزالة مجموعة الخيوط تمامًا من المسار، بالإضافة إلى إعادة ترجمة corpus في عمليات جديدة بحيث يحصل كل تشغيل على بذرة hash الخاصة به.
الأسئلة الشائعة: ما هو Vx وما الذي يجعله فريدًا؟
Vx هي لغة برمجة أنظمة للحوسبة غير المتجانسة حيث تكون أنواع الذاكرة لوحدة المعالجة المركزية، ووحدة معالجة الرسومات، ووحدة معالجة الشبكات العصبية، والتسارعات جزءًا من نظام الأنواع. هذا يمنع أخطاء وقت التشغيل مثل أعطال التجزئة من خلال التقاط إلغاء إشارة مؤشرات الجهاز في وقت الترجمة. إنه يتعامل مع المسرعات كعناصر دلالية وليس كبنية تحتية، ويتطلب نقلات بيانات صريحة بين مساحات الذاكرة حتى عندما تكون حدود hardware حرة.
ما هو Vx وما الذي يجعله فريدًا؟
Vx هي لغة برمجة أنظمة للحوسبة غير المتجانسة حيث تكون أنواع الذاكرة لوحدة المعالجة المركزية، ووحدة معالجة الرسومات، ووحدة معالجة الشبكات العصبية، والتسارعات جزءًا من نظام الأنواع. هذا يمنع أخطاء وقت التشغيل مثل أعطال التجزئة من خلال التقاط إلغاء إشارة مؤشرات الجهاز في وقت الترجمة. إنه يتعامل مع المسرعات كعناصر دلالية وليس كبنية تحتية، ويتطلب نقلات بيانات صريحة بين مساحات الذاكرة حتى عندما تكون حدود hardware حرة.
🇧🇩 বাংলা
Vx ভাষা: একটি ভাষা, প্রতিটি চিপের জন্য
Vx একটি সিস্টেম প্রোগ্রামিং ভাষা असामান্য কম্পিউটিংয়ের জন্য যেখানে CPU, GPU, NPU এবং ত্বরণকারী মেমোরি টাইপ সিস্টেমের অংশ। একটি হোস্ট থ্রেড যা ডিভাইস পয়েন্টারকে ডিরেফারেন্স করে, একটি কম্পাইল ত্রুটি, সেগমেন্টেশন ফল্ট নয়। এটি অ্যাপল সিলিকনে macOS এবং লিনাক্স x86_64-এ উপলব্ধ। অসামান্যতা টাইপ সিস্টেমে থাকা উচিত, রানটাইমে নয়। ডেটা কোথায় আছে, তার টাইপের অংশ। অধিকাংশ ভাষা ত্বরণকারীকে ইনফ্রাস্ট্রাকচার মনে করে: আপনি গণিত লিখেন, এবং একটি বড় অপারেক রানটাইম সিদ্ধান্ত নেয় কিভাবে এটি পাঠাতে হবে। Vx এটি অর্থবোধ হিসেবে মনে করে। NPU উচ্চ-ব্যান্ডউইথ মেমোরিতে পিন করা টেনসরের টাইপ হোস্ট DRAM-এ থাকা টেনসরের থেকে ভিন্ন, এবং তাদের মধ্যে পারgaan একটি স্পষ্ট transfer() প্রয়োজন — এমনকি যখন হার্ডওয়্যার সীমা মুক্ত হয়। অ্যাপলের ইউনিফাইড মেমোरीএ, এই ট্রান্সফার কম্পাইল হয় تقریباً কিছু না। এটাইও লেখা হয়, কারণ ডেটা লোকালিটি কোড পড়कर सिद्ध করা উচিত, বাইনারি প্রোফাইল করে নয়।
কম্পাইলার ঠিকানা-স্পেস টাইপিং, ক্যাপাসিটি ভেশজ, সীম কন্ট্রাক্ট, রৈখিক টাইপ, টপোলজি পৌঁছার যোগ্যতা, এবং অটোডিফ সমস্যাগুলি বাদ দেয়। মেশিন ঘোষণা করা হয়, মনে করা নয়। অধিকাংশ কম্পাইলার একটি হার্ড-কোডেড কস্ট মডেল ব্যবহার করে। Vx একটি পড়ে। একটি মেশিন ফাইল একটি বাস্তব অংশের মেমোরি হিয়ারার্কি এবং ইন্টারকানেকশন বর্ণনা করে, এবং কম্পাইলার তার বিরুদ্ধে রাখা স্থাপন গ্রহণ করে বা প্রত্যাখ্যান করে। একক exactamente পূর্ণান্তর রূপান্তর, কখনো ফ্লোট নয়: SI উপসর্গ দশমিক (GB = 10^9), IEC বাইনারি (GiB = 2^30)। একটি বিক্রেতা শীট থেকে কপি করা সংখ্যা শীটের অর্থের মতো অর্থ রাখে। রেপোজিটরিতে H100, H200, B200, A100, MI300X, Apple M4 এবং মাল্টি-GPU নোডের জন্য মেশিন ফাইল আছে — প্রতিটি তার উৎসों का उल्लेख करता है, এবং未验证的数字标记为未验证।
এটি কীভাবে কম্পাইল হয়: ডেটা-অরিয়েন্টেড প্যারালেল ফ্রন্টএন্ড। প্রতিটি সিম্বল, নামিনাল টাইপ এবং মনোমরফাইজড ভেরিয়েন্ট একটি সমতল 256-বিট শনাক্তকারী। নামিনাল টাইপ সিস্টেম plus পুনরাবৃত্তি টাইপের জন্য বাধ্যতামূলক বক্সিং মডিউলকে ডিকপল করে, যাতে পাইপলাইন কোরে কোয়েরি ইঞ্জিন এবং লক প্রতিযোগিতার बिनाparallel চলে। কম্পাইলেশন সমতল অ্যারে দিয়ে চলে, পয়েন্টার-চেসড ট্রি নয়। একই উৎস, चाहे এটি সিরিয়াল বা প্যারালেলে তৈরি হয়, বাইট-আইডেন্টিকাল MLIR-এ কম্পাইল হয়। এটি টেস্ট সুইটে দাবি করা হয়, আশা নয় — বেঞ্চমার্ক স্কেলে, একটি থ্রেডে, চার থ্রেডে, এবং থ্রেড পুলকে পথ থেকে সম্পূর্ণরূপে সরিয়ে দিলে, এবং প্রতিটি চালানোর জন্য নিজের নিজের হ্যাশ সিড পেতে নতুন প্রসেসে কোরপাস পুনःকম্পাইল করা হয়।
সাধারণ প্রশ্ন: Vx কি এবং এটি কীভাবে অনন্য করে তোলে?
Vx একটি সিস্টেম প্রোগ্রামিং ভাষা असामান্য কম্পিউটিংয়ের জন্য যেখানে CPU, GPU, NPU এবং ত্বরণকারী মেমোরি টাইপ টাইপ সিস্টেমের অংশ। এটি কম্পাইল টাইমে ডিভাইস পয়েন্টার ডিরেফারেন্স पकड़कर সেগমেন্টেশন ফল্টের মতো রানটাইম ত্রুটি প্রতিরোধ করে। এটি ত্বরণকারীকে ইনফ্রাস্ট্রাকচারের পরিবর্তে অর্থবোধ উপাদান হিসেবে মনে করে, हार्डवेयर सीमा मुक्त होने पर भी, মেমোরি স্পেসের মধ্যে স্পষ্ট ডেটা ট্রান্সফার প্রয়োজন।
Vx কি এবং এটি কীভাবে অনন্য করে তোলে?
Vx একটি সিস্টেম প্রোগ্রামিং ভাষা असामान্য কম্পিউটিংয়ের জন্য যেখানে CPU, GPU, NPU এবং ত্বরণকারী মেমোরি টাইপ টাইপ সিস্টেমের অংশ। এটি কম্পাইল টাইমে ডিভাইস পয়েন্টার ডিরেফারেন্স पकड़कर সেগমেন্টেশন ফল্টের মতো রানটাইম ত্রুটি প্রতিরোধ করে। এটি ত্বরণকারীকে ইনফ্রাস্ট্রাকচারের পরিবর্তে অর্থবোধ উপাদান হিসেবে মনে করে, हार्डवेयर सीमा मुक्त होने पर भी, মেমোরি স্পেসের মধ্যে স্পষ্ট ডেটা ট্রান্সফার প্রয়োজন।
🇩🇪 Deutsch
Vx Sprache: Eine Sprache, Jeder Chip
Vx ist eine Systemprogrammiersprache für heterogene Berechnungen, bei der der Speicher von CPU, GPU, NPU und Beschleunigern Teil des Typsystems ist. Ein Host-Thread, der einen Gerätezeiger dereferenziert, ist ein Kompilierzeitfehler, kein Segfault. Es ist für macOS auf Apple Silicon und Linux x86_64 verfügbar. Heterogenität gehört ins Typsystem, nicht zur Laufzeit. Wo Daten gespeichert sind, ist Teil ihres Typs. Die meisten Sprachen behandeln den Beschleuniger als Infrastruktur: du schreibst Mathematik, und ein großer undurchsichtiger Laufzeit entscheidet, wie es versendet wird. Vx behandelt es als Semantik. Ein Tensor, der im hochbandbreitenspeicher des NPU fixiert ist, hat einen anderen Typ als einer im Host-DRAM, und das Überqueren zwischen ihnen erfordert eine explizite transfer() — selbst wenn die Hardwaregrenze frei ist. Auf Apples einheitlichem Speicher kompiliert dieser Transfer zu fast nichts. Er wird dennoch geschrieben, denn Datenlokalität sollte durch Lesen des Source-Codes nachweisbar sein, nicht durch Profilen des Binaries.
Der Compiler schließt Adressraum-Typisierung, Kapazitätszulassung, Nahtverträge, lineare Typen, Topologie-Erreichbarkeit und Autodiff-Probleme aus. Die Maschine wird erklärt, nicht angenommen. Die meisten Compiler hartkodieren ein Kostenmodell. Vx liest eines. Eine Maschinedatei beschreibt die Speicherhierarchie und Interconnect eines echten Teils, und der Compiler nimmt oder lehnt Platzierungen dagegen auf. Einheiten sind exakte Ganzzahlkonvertierungen, niemals Fließkommazahlen: SI-Präfixe sind dezimal (GB = 10^9), IEC-Präfixe sind binär (GiB = 2^30). Eine von einem Datenblatt abgezogene Zahl bedeutet, was das Blatt meinte. Das Repository liefert Maschinedateien für H100, H200, B200, A100, MI300X, Apple M4 und Multi-GPU-Knoten — jeweils mit Quellenangabe und Kennzeichnung unverifizierter Zahlen als unverifiziert.
Wie es kompiliert wird: Eine datenorientierte parallele Frontend. Jedes Symbol, nominaler Typ und monomorphisierte Variante ist ein flacher 256-Bit-Identifier. Ein nominales Typsystem plus verpflichtendes Boxing für rekursive Typen entkoppelt Module, sodass die Pipeline parallel über Kerne läuft ohne Abfrage-Engine und ohne Lock-Konkurrenz. Die Kompilierung läuft über flache Arrays statt über von Zeigern verfolgte Bäume. Der gleiche Quelle kompiliert zu byte-identischem MLIR, egal ob sie seriell oder parallel gebaut wird. Dies wird im Testsuite behauptet, nicht einfach hoffen — bei Benchmark-Skala, bei einem Thread, bei vier Threads, und wenn der Thread-Pool komplett vom Weg genommen wird, plus ein Korpus, der in frischen Prozessen neu kompiliert wird, sodass jeder Lauf seinen eigenen Hash-Seed erhält.
Häufig gestellte Fragen: Was ist Vx und was macht es einzigartig?
Vx ist eine Systemprogrammiersprache für heterogene Berechnungen, bei der der Speicher von CPU, GPU, NPU und Beschleunigern Teil des Typsystems ist. Dadurch werden Laufzeitfehler wie Segfaults verhindert, indem Gerätezeiger-Dereferenzierungen zur Kompilierzeit erfasst werden. Es behandelt Beschleuniger als semantische Komponenten statt als Infrastruktur, wodurch explizite Datenübertragungen zwischen Speicherbereichen erforderlich sind, selbst wenn die Hardwaregrenzen frei sind.
Was ist Vx und was macht es einzigartig?
Vx ist eine Systemprogrammiersprache für heterogene Berechnungen, bei der der Speicher von CPU, GPU, NPU und Beschleunigern Teil des Typsystems ist. Dadurch werden Laufzeitfehler wie Segfaults verhindert, indem Gerätezeiger-Dereferenzierungen zur Kompilierzeit erfasst werden. Es behandelt Beschleuniger als semantische Komponenten statt als Infrastruktur, wodurch explizite Datenübertragungen zwischen Speicherbereichen erforderlich sind, selbst wenn die Hardwaregrenzen frei sind.
🇪🇸 Español
Vx Lenguaje: Un Lenguaje, Cada Chip
Vx es un lenguaje de programación de sistemas para computación heterogénea donde la memoria de CPU, GPU, NPU y aceleradores es parte del sistema de tipos. Un subproceso de host que desreferencia un puntero de dispositivo es un error de compilación, no una falla de segmentación. Está disponible para macOS en Apple Silicon y Linux x86_64. La heterogeneidad pertenece al sistema de tipos, no al tiempo de ejecución. Dónde viven los datos es parte de su tipo. La mayoría de los lenguajes tratan al acelerador como infraestructura: escribes matemáticas, y un tiempo de ejecución grande y opaco decide cómo enviarlo. Vx lo trata como semántica. Un tensor fijado en la memoria de alto ancho de banda de NPU tiene un tipo diferente de uno en la memoria DRAM del host, y cruzar entre ellos requiere un transfer() explícito — incluso cuando el límite de hardware es gratuito. En la memoria unificada de Apple, esa transferencia se compila en casi nada. Todavía se escribe abajo, porque la localidad de datos debería ser demostrable leyendo el código fuente en lugar de perfilando el binario.
El compilador descarta la tipificación de espacio de direcciones, la admisión de capacidad, los contratos de costura, los tipos lineales, la alcanzabilidad de topología y los problemas de autodiferenciación. La máquina se declara, no se asume. La mayoría de los compiladores codifican rígidamente un modelo de costo. Vx lee uno. Un archivo de máquina describe la jerarquía de memoria y la interconexión de una pieza real, y el compilador admite o rechaza colocaciones en función de él. Las unidades son conversiones enteras exactas, nunca flotantes: los prefijos SI son decimales (GB = 10^9), los IEC son binarios (GiB = 2^30). Una cifra copiada de una hoja de especificaciones de un proveedor significa lo que la hoja quiso decir. El repositorio incluye archivos de máquina para H100, H200, B200, A100, MI300X, Apple M4 y nodos de múltiples GPU — cada uno citando sus fuentes y marcando las cifras no verificadas como no verificadas.
Cómo se compila: Un frontend paralelo orientado a datos. Cada símbolo, tipo nominal y variante monomorfizada es un identificador plano de 256 bits. Un sistema de tipos nominales más el boxeo obligatorio para tipos recursivos desacopla los módulos, de modo que la canalización se ejecuta en paralelo entre núcleos sin motor de consultas y sin contención de bloqueos. La compilación recorre arreglos planos en lugar de árboles perseguidos por punteros. El mismo origen compila a MLIR idéntico a nivel de byte ya sea que se construya en serie o en paralelo. Esto se afirma en el conjunto de pruebas plutôt que esperarse — a escala de referencia, en un hilo, en cuatro, y con el grupo de hilos completamente eliminado del camino, además de un corpus recompilado en procesos nuevos para que cada ejecución obtenga su propia semilla de hash.
Preguntas frecuentes: ¿Qué es Vx y qué lo hace único?
Vx es un lenguaje de programación de sistemas para computación heterogénea donde los tipos de memoria para CPU, GPU, NPU y aceleradores son parte del sistema de tipos. Esto previene errores en tiempo de ejecución como fallos de segmentación al capturar desreferencias de punteros de dispositivo en tiempo de compilación. Trata a los aceleradores como componentes semánticos en lugar de infraestructura, requiriendo transferencias explícitas de datos entre espacios de memoria incluso cuando los límites de hardware son gratuitos.
¿Qué es Vx y qué lo hace único?
Vx es un lenguaje de programación de sistemas para computación heterogénea donde los tipos de memoria para CPU, GPU, NPU y aceleradores son parte del sistema de tipos. Esto previene errores en tiempo de ejecución como fallos de segmentación al capturar desreferencias de punteros de dispositivo en tiempo de compilación. Trata a los aceleradores como componentes semánticos en lugar de infraestructura, requiriendo transferencias explícitas de datos entre espacios de memoria incluso cuando los límites de hardware son gratuitos.
🇫🇷 Français
Vx Langage : Un Langage, Chaque Puce
Vx est un langage de programmation système pour le calcul hétérogène où la mémoire du CPU, GPU, NPU et des accélérateurs fait partie du système de types. Un thread hôte qui déréférence un pointeur de périphérique est une erreur de compilation, pas une erreur de segmentation. Il est disponible pour macOS sur Apple Silicon et Linux x86_64. L'hétérogénéité appartient au système de types, pas au runtime. Où les données se trouvent fait partie de leur type. La plupart des langages considèrent l'accélérateur comme une infrastructure : vous écrivez des mathématiques, et un gros runtime opaque décide comment l'envoyer. Vx le considère comme de la sémantique. Un tensor épinglé dans la mémoire à haute bande passante du NPU a un type différent d'un dans la mémoire DRAM de l'hôte, et passer de l'un à l'autre nécessite un transfert explicite() — même lorsque la frontière matérielle est libre. Sur la mémoire unifiée d'Apple, ce transfert se compile en presque rien. Il est néanmoins écrit, car la localité des données devrait être démontrable en lisant le code source plutôt qu'en profilant le binaire.
Le compilateur élimine la typage d'espace d'adresses, l'admission de capacité, les contrats de couture, les types linéaires, l'accessibilité de topologie et les problèmes de différenciation automatique. La machine est déclarée, pas supposée. La plupart des compilateurs codent en dur un modèle de coût. Vx en lit un. Un fichier machine décrit la hiérarchie de mémoire et l'interconnexion d'une pièce réelle, et le compilateur admet ou rejette les placements par rapport à celui-ci. Les unités sont des conversions entières exactes, jamais des flottants : les préfixes SI sont décimaux (GB = 10^9), les préfixes IEC sont binaires (GiB = 2^30). Un chiffre copié depuis une fiche technique d'un fournisseur signifie ce que la feuille voulait dire. Le dépôt fournit des fichiers machine pour H100, H200, B200, A100, MI300X, Apple M4 et des nœuds multi-GPU — chacun citant ses sources et marquant les chiffres non vérifiés comme non vérifiés.
Comment ça compile : Une interface parallèle orientée données. Chaque symbole, type nominal et variante monomorphisée est un identifiant plat de 256 bits. Un système de types nominaux plus un boxing obligatoire pour les types récursifs découple les modules, permettant au pipeline de s'exécuter en parallèle sur les cœurs sans moteur de requêtes et sans compétition pour les verrous. La compilation parcourt des tableaux plats plutôt que des arbres suivis par pointeurs. La même source compile en MLIR identique au niveau des octets, qu'elle soit construite en série ou en parallèle. Cela est affirmé dans la suite de tests plutôt qu'espéré — à l'échelle de référence, avec un fil, avec quatre fils, et avec le pool de threads entièrement retiré du chemin, plus un corpus recompilé dans de nouveaux processus afin que chaque exécution ait sa propre graine de hash.
FAQ : Qu'est-ce que Vx et qu'est-ce qui le rend unique ?
Vx est un langage de programmation système pour le calcul hétérogène où les types de mémoire pour le CPU, GPU, NPU et les accélérateurs font partie du système de types. Cela évite les erreurs d'exécution comme les erreurs de segmentation en détectant la déréférencement des pointeurs périphériques à la compilation. Il traite les accélérateurs comme des composants sémantiques plutôt que comme de l'infrastructure, nécessitant des transferts de données explicites entre les espaces de mémoire même lorsque les frontières matérielles sont libres.
Qu'est-ce que Vx et qu'est-ce qui le rend unique ?
Vx est un langage de programmation système pour le calcul hétérogène où les types de mémoire pour le CPU, GPU, NPU et les accélérateurs font partie du système de types. Cela évite les erreurs d'exécution comme les erreurs de segmentation en détectant la déréférencement des pointeurs périphériques à la compilation. Il traite les accélérateurs comme des composants sémantiques plutôt que comme de l'infrastructure, nécessitant des transferts de données explicites entre les espaces de mémoire même lorsque les frontières matérielles sont libres.
🇮🇳 हिन्दी
Vx भाषा: एक भाषा, हर चिप के लिए
Vx एक सिस्टम प्रोग्रामिंग भाषा है असमान कंप्यूटिंग के लिए जहाँ CPU, GPU, NPU और एक्सेलेरेटर मेमोरी प्रकार प्रणाली का हिस्सा हैं। एक होस्ट थ्रेड जो डिवाइस पॉइंटर को डीरेफरेंस करता है, एक संकलन त्रुटि है, सेगफॉल्ट नहीं। यह एप्पल सिलिकॉन पर macOS और Linux x86_64 के लिए उपलब्ध है। असमानता टाइप सिस्टम में होनी चाहिए, रनटाइम में नहीं। डेटा कहाँ रहता है, इसका प्रकार का हिस्सा है। अधिकांश भाषाएँ एक्सेलेरेटर को इंफ्रास्ट्रक्चर मानती हैं: आप गणित लिखते हैं, और एक बड़ा अपारदर्शी रनटाइम तय करता है कि इसे कैसे भेजा जाए। Vx इसे अर्थशास्त्र मानता है। NPU उच्च-बैंडविड्थ मेमोरी में पिन किया गया टेंसर, होस्ट DRAM में वाले टेंसर से अलग प्रकार का होता है, और उनके बीच पार करना एक स्पष्ट transfer() की आवश्यकता होती है — भले ही हार्डवेयर सीमा मुक्त हो। एप्पल के यूनिफाइड मेमोरी पर, यह ट्रांसफर लगभग कुछ भी नहीं कंपाइल होता है। फिर भी इसे लिखा जाता है, क्योंकि डेटा स्थानीयता को स्रोत को पढ़कर सिद्ध किया जाना चाहिए, बाइनरी को प्रोफाइल करके नहीं।
कंपाइलर एड्रेस-स्पेस टाइपिंग, कैपेसिटी एडमिशन, सीम कॉन्ट्रैक्ट्स, लीनियर टाइप्स, टोपोलॉजी रीचेबिलिटी, और ऑटोडिफ़ मुद्दों को बाहर करता है। मशीन की घोषणा की जाती है, माना नहीं जाता। अधिकांश कंपाइलर एक हार्ड-कोडेड कॉस्ट मॉडल रखते हैं। Vx एक पढ़ता है। एक मशीन फ़ाइल एक वास्तविक भाग की मेमोरी हिरार्की और इंटरकनेक्शन का वर्णन करती है, और कंपाइलर इसके खिलाफ रखे गए स्थानों को स्वीकार करता है या अस्वीकार करता है। इकाइयाँ सटीक पूर्णांक रूपांतरण हैं, कभी फ्लोट नहीं: SI उपसर्ग दशमलव हैं (GB = 10^9), IEC बाइनरी हैं (GiB = 2^30)। एक विक्रेता शीट से कॉपी किया गया आंकड़ा वही अर्थ रखता है जो शीट intended थी। रिपॉजिटरी H100, H200, B200, A100, MI300X, Apple M4 और मल्टी-GPU नोड्स के लिए मशीन फ़ाइलें प्रदान करता है — प्रत्येक अपने स्रोतों का उल्लेख करता है, और अप्रमाणित आंकड़ों को अप्रमाणित के रूप में चिह्नित करता है।
यह कैसेコンパイル होता है: डेटा-ओरिएंटेड पैरेलल फ्रंटएंड। हर प्रतीक, नाममात्र प्रकार और मोनोमॉर्फाइज़्ड वेरिएंट एक सपाट 256-बिट पहचानकर्ता है। नाममात्र प्रकार प्रणाली प्लस पुनरावर्ती प्रकारों के लिए अनिवार्य बॉक्सिंग मॉड्यूल को डीकपल करती है, ताकि पाइपलाइन कोर में क्वेरी इंजन और लॉक प्रतिस्पर्धा के बिना समानांतर रूप से चल सके। कंपाइलेशन फ्लैट एरे पर चलती है, पॉइंटर-चेज़्ड ट्रीज़ पर नहीं। एक ही स्रोत, चाहे यह सीरियल या पैरेलल में बनाया गया हो, बाइट-आइडेंटिकल MLIR में 컴파일 होता है। यह टेस्ट सुइट में पुष्टि की जाती है, न कि सिर्फ उम्मीद की जाती है — बेंचमार्क पैमाने पर, एक थ्रेड पर, चार थ्रेड पर, और थ्रेड पूल को पूरी तरह से पथ से हटाने पर, साथ ही प्रत्येक चलने के लिए अपना खुद का हैश सीड प्राप्त करने के लिए नए प्रोसेस में कोर्पस को再コンパイル करके।
अक्सर पूछे जाने वाले प्रश्न: Vx क्या है और इसे अद्वितीय क्यों बनाता है?
Vx एक सिस्टम प्रोग्रामिंग भाषा है असमान कंप्यूटिंग के लिए जहाँ CPU, GPU, NPU और एक्सेलेरेटर मेमोरी प्रकार प्रकार प्रणाली का हिस्सा हैं। यह संकलन समय पर डिवाइस पॉइंटर डीरेफरेंस को पकड़कर सेगफॉल्ट जैसे रनटाइम त्रुटियों को रोकता है। यह एक्सेलेरेटर को इंफ्रास्ट्रक्चर के बजाय अर्थ घटक के रूप में मानता है, भले ही हार्डवेयर सीमाएं मुक्त हों, तो भी मेमोरी स्पेस के बीच स्पष्ट डेटा ट्रांसफर की आवश्यकता होती है।
Vx क्या है और इसे अद्वितीय क्यों बनाता है?
Vx एक सिस्टम प्रोग्रामिंग भाषा है असमान कंप्यूटिंग के लिए जहाँ CPU, GPU, NPU और एक्सेलेरेटर मेमोरी प्रकार प्रकार प्रणाली का हिस्सा हैं। यह संकलन समय पर डिवाइस पॉइंटर डीरेफरेंस को पकड़कर सेगफॉल्ट जैसे रनटाइम त्रुटियों को रोकता है। यह एक्सेलेरेटर को इंफ्रास्ट्रक्चर के बजाय अर्थ घटक के रूप में मानता है, भले ही हार्डवेयर सीमाएं मुक्त हों, तो भी मेमोरी स्पेस के बीच स्पष्ट डेटा ट्रांसफर की आवश्यकता होती है।
🇮🇩 Bahasa Indonesia
Vx Bahasa: Satu Bahasa, Setiap Chip
Vx adalah bahasa pemrograman sistem untuk komputasi heterogen di mana memori CPU, GPU, NPU dan akselerator adalah bagian dari sistem tipe. Benang host yang mendereferensikan pointer perangkat adalah kesalahan kompilasi, bukan kesalahan segmentasi. Ia tersedia untuk macOS pada Apple Silicon dan Linux x86_64. Heterogenitas kuuluu ke sistem tipe, bukan ke runtime. Di mana data berada adalah bagian dari tipe-nya. Kebanyakan bahasa memperlakukan akselerator sebagai infrastruktur: kamu menulis matematika, dan runtime yang besar dan tidak transparan memutuskan cara mengirimkannya. Vx memperlakukan akselerator sebagai semantik. Tensor yang ditempel di memori lebar banda tinggi NPU memiliki tipe yang berbeda dari yang ada di memori DRAM host, dan menyeberang di antara mereka membutuhkan transfer() eksplisit — bahkan ketika batas hardware bebas. Pada memori terpadu Apple, transfer ini dikompilasi menjadi hampir tidak ada. Namun masih ditulis, karena lokalitas data harus dapat dibuktikan dengan membaca kode sumber, bukan dengan profil biner.
Kompilator mengecualikan pengetikan ruang alamat, penerimaan kapasitas, kontrak jahit, tipe linear, jangkauan topologi, dan masalah autodiff. Mesin dideklarasikan, bukan diasumsikan. Kebanyakan compiler mengenkodekan model biaya secara keras. Vx membacanya. File mesin menjelaskan hierarki memori dan konektivitas bagian nyata, dan kompiler menerima atau menolak penempatan berdasarkan itu. Satuan adalah konversi bilangan bulat tepat, bukan bilangan floating-point: awalan SI adalah desimal (GB = 10^9), awalan IEC adalah biner (GiB = 2^30). Angka yang disalin dari lembar spesifikasi vendor berarti apa yang dimaksudkan oleh lembar itu. Repositori menyertakan file mesin untuk H100, H200, B200, A100, MI300X, Apple M4 dan node multi-GPU — masing-masing menyebut sumbernya dan menandakan angka yang tidak terverifikasi sebagai tidak terverifikasi.
Bagaimana cara kompilasinya: Frontend paralel berorientasi data. Setiap simbol, tipe nominal, dan varian monomorf adalah identifier datar 256-bit. Sistem tipe nominal ditambah dengan boxing wajib untuk tipe rekursif memisahkan modul, sehingga pipelining berjalan paralel di inti tanpa mesin kueri dan tanpa persaingan kunci. Kompilasi berjalan melalui array datar, bukan melalui pohon yang diikuti oleh pointer. Sumber yang sama menghasilkan MLIR yang identik pada level byte, apakah dibangun secara serial atau paralel. Ini ditegaskan dalam suite uji daripada hanya diharapkan — pada skala benchmark, dengan satu utiga, dengan empat utiga, dan ketika kumpulan utiga sepenuhnya dijalankan dari jalur, ditambah korpus yang di-rekompilasi dalam proses segar sehingga setiap jalankan memiliki benih hash sendiri.
Pertanyaan yang Sering Diajukan: Apa Vx dan apa yang membuatnya unik?
Vx adalah bahasa pemrograman sistem untuk komputasi heterogen di mana tipe memori untuk CPU, GPU, NPU dan akselerator adalah bagian dari sistem tipe. Ini mencegah kesalahan runtime seperti segfault dengan mendeteksi dereferensi pointer perangkat pada waktu kompilasi. Ia memperlakukan akselerator sebagai komponen semantik bukan sebagai infrastruktur, yang membutuhkan transfer data eksplisit antara ruang memori bahkan ketika batas hardware bebas.
Apa Vx dan apa yang membuatnya unik?
Vx adalah bahasa pemrograman sistem untuk komputasi heterogen di mana tipe memori untuk CPU, GPU, NPU dan akselerator adalah bagian dari sistem tipe. Ini mencegah kesalahan runtime seperti segfault dengan mendeteksi dereferensi pointer perangkat pada waktu kompilasi. Ia memperlakukan akselerator sebagai komponen semantik bukan sebagai infrastruktur, yang membutuhkan transfer data eksplisit antara ruang memori bahkan ketika batas hardware bebas.
🇯🇵 日本語
Vx 言語: 1つの言語、すべてのチップに
Vx は CPU、GPU、NPU、アクセラレータのメモリが型システムの一部である異種コンピューティング向けのシステムプログラミング言語です。ホストスレッドがデバイスポインタを参照外しすると、セグフォルトではなくコンパイルエラーになります。Apple Silicon 上の macOS と Linux x86_64 で利用可能です。異種性はランタイムではなく型システムに属すべきです。データが存在する場所はその型の一部です。ほとんどの言語ではアクセラレータはインフラストラクチャとして扱われます:あなたは数学を書き、大きな不透明なランタイムがそれをどのように送信するかを決定します。Vx はそれを意味論として扱います。NPU の高帯域幅メモリにピン留めされたテンソルは、ホスト DRAM のテンソルとは異なる型を持ち、その間を行き来するには hardware の境界が自由であっても explicit な transfer() が必要です。Apple の統一メモリでは、この transfer はほとんど何もコンパイルされません。それでも書かれているのは、データの局所性はバイナリをプロファイリングするのではなくソースコードを読むことで証明可能であるべきだからです。
コンパイラはアドレススペースの型付け、容量の受け入れ、シーム契約、線形型、トポロジーの到達可能性、および自動微分の問題を除外します。マシンは仮定されるのではなく宣言されます。ほとんどのコンパイラはコストモデルをハードコードします。Vx はそれを読み取ります。マシンファイルは実際の部品のメモリ階層とインターコネクトを記述し、コンパイラはそれに従って配置を受け入れたり拒否したりします。単位は正確な整数変換であり、決して浮動小数点ではありません:SI 接頭辞は10進数(GB = 10^9)、IEC 接頭辞は2進数(GiB = 2^30)。ベンダーシートからコピーされた数字は、そのシートが意味したとおりの意味を持ちます。リポジトリには H100、H200、B200、A100、MI300X、Apple M4、およびマルチ GPU ノードのマシンファイルが含まれており、それぞれの出典を引用し、検証されていない数値は「未検証」としてマークされています。
どのようにコンパイルされるか:データ指向のパラレルフロントエンド。すべてのシンボル、名義型、および単形化されたバリアントはフラットな 256 ビット識別子です。名義型システムに加えて再帰的型のための必須ボックスングによりモジュールが分離され、クエリエンジンやロック競合なしでコア間でパイプラインを並列実行できます。コンパイルはポインタを追いかける木ではなくフラットな配列を歩きます。同じソースは、シリアルに構築してもパラレルに構築してもバイト同一の MLIR を生成します。これはテストスイートで断言されており、単なる期待ではありません:ベンチマークスケールで、1 スレッド、4 スレッド、およびスレッドプールがパスから完全に外されている状態でも、さらに新しいプロセスでコーパスを再コンパイルして各実行に独自のハッシュシードを与えることで確認されます。
よくある質問: Vx とは何か、そして何がそれを独自のものにしているのか?
Vx は CPU、GPU、NPU、アクセラレータのメモリ型が型システムの一部である異種コンピューティング向けのシステムプログラミング言語です。コンパイル時にデバイスポインタの参照外しを検出することで、セグフォルトなどのランタイムエラーを防ぎます。アクセラレータをインフラストラクチャではなく意味論的コンポーネントとして扱い、ハードウェアの境界が自由であってもメモリ空間間での明示的なデータ転送を必要とします。
Vx とは何か、そして何がそれを独自のものにしているのか?
Vx は CPU、GPU、NPU、アクセラレータのメモリ型が型システムの一部である異種コンピューティング向けのシステムプログラミング言語です。コンパイル時にデバイスポインタの参照外しを検出することで、セグフォルトなどのランタイムエラーを防ぎます。アクセラレータをインフラストラクチャではなく意味論的コンポーネントとして扱い、ハードウェアの境界が自由であってもメモリ空間間での明示的なデータ転送を必要とします。
🇧🇷 Português
Vx Linguagem: Uma Linguagem, Cada Chip
Vx é uma linguagem de programação de sistemas para computação heterogênea onde a memória de CPU, GPU, NPU e aceleradores faz parte do sistema de tipos. Uma thread de host que desreferencia um ponteiro de dispositivo é um erro de compilação, não uma falha de segmentação. Está disponível para macOS no Apple Silicon e Linux x86_64. A heterogeneidade pertence ao sistema de tipos, não ao tempo de execução. Onde os dados estão localizados faz parte do seu tipo. A maioria das linguagens trata o acelerador como infraestrutura: você escreve matemática, e um grande tempo de execução opaco decide como enviá-lo. Vx o trata como semântica. Um tensor fixado na memória de alta largura de banda do NPU tem um tipo diferente de um na memória DRAM do host, e a travessia entre eles requer um transfer() explícito — mesmo quando a fronteira de hardware é livre. Na memória unificada da Apple, essa transferência compila para quase nada. Ainda assim, é escrito, pois a localidade de dados deve ser provável pela leitura do código-fonte, e não pela análise do binário.
O compilador elimina a tipagem de espaço de endereços, a admissão de capacidade, os contratos de costura, os tipos lineares, a alcançabilidade de topologia e os problemas de diferenciação automática. A máquina é declarada, não assumida. A maioria dos compiladores codifica rigidamente um modelo de custo. Vx lê um. Um arquivo de máquina descreve a hierarquia de memória e a interconexão de uma peça real, e o compilador admite ou rejeita colocações com base nele. As unidades são conversões inteiras exatas, nunca de ponto flutuante: os prefixos SI são decimais (GB = 10^9), os prefixos IEC são binários (GiB = 2^30). Um número copiado de uma folha de especificações de um fornecedor significa o que a folha pretendia. O repositório fornece arquivos de máquina para H100, H200, B200, A100, MI300X, Apple M4 e nós de múltiplos GPUs — cada um citando suas fontes e marcando os números não verificados como não verificados.
Como é compilado: Uma interface frontal paralela orientada a dados. Cada símbolo, tipo nominal e variante monomorfizada é um identificador plano de 256 bits. Um sistema de tipos nominais mais o boxing obrigatório para tipos recursivos desacopla os módulos, de modo que o pipeline seja executado em paralelo nos núcleos sem mecanismo de consulta e sem contenção de bloqueio. A compilação percorre arrays planos em vez de árvores perseguidas por ponteiros. A mesma fonte compila para MLIR idêntico no nível de byte, seja construída sequencialmente ou em paralelo. Isso é afirmado na suíte de testes em vez de ser esperado — em escala de referência, com um thread, com quatro threads, e com o pool de threads totalmente removido do caminho, além de um corpus recompilado em processos novos para que cada execução obtenha sua própria semente de hash.
Perguntas frequentes: O que é Vx e o que o torna único?
Vx é uma linguagem de programação de sistemas para computação heterogênea onde os tipos de memória para CPU, GPU, NPU e aceleradores fazem parte do sistema de tipos. Isso evita erros em tempo de execução como falhas de segmentação ao detectar a desreferência de ponteiros de dispositivo em tempo de compilação. Ele trata os aceleradores como componentes semânticos em vez de infraestrutura, exigindo transferências explícitas de dados entre espaços de memória mesmo quando as fronteiras de hardware são livres.
O que é Vx e o que o torna único?
Vx é uma linguagem de programação de sistemas para computação heterogênea onde os tipos de memória para CPU, GPU, NPU e aceleradores fazem parte do sistema de tipos. Isso evita erros em tempo de execução como falhas de segmentação ao detectar a desreferência de ponteiros de dispositivo em tempo de compilação. Ele trata os aceleradores como componentes semânticos em vez de infraestrutura, exigindo transferências explícitas de dados entre espaços de memória mesmo quando as fronteiras de hardware são livres.
🇷🇺 Русский
Vx Язык: Один Язык, Каждый Чип
Vx — это язык системного программирования для гетерогенных вычислений, где память CPU, GPU, NPU и ускорителей является частью системы типов. Поток хозяина, разыменовывающий указатель устройства, является ошибкой компиляции, а не сегфолтом. Он доступен для macOS на Apple Silicon и Linux x86_64. Гетерогенность принадлежит системе типов, а не времени выполнения. Где находятся данные — это часть их типа. Большинство языков рассматривают ускоритель как инфраструктуру: вы пишете математику, а большой непрозрачный runtime решает, как его отправить. Vx рассматривает его как семантику. Тензор, закрепленный в высокопропускной памяти NPU, имеет другой тип, чем тот, что находится в памяти DRAM хоста, и переход между ними требует явного вызова transfer() — даже когда граница оборудования свободна. На унифицированной памяти Apple этот перевод компилируется почти в ничего. Тем не менее, он записывается, потому что локальность данных должна быть доказуема чтением исходного кода, а не профилированием бинарника.
Компилятор исключает типизацию адресного пространства, прием емкости, шовные контракты, линейные типы, достижимость топологии и проблемы автоматического дифференцирования. Машина объявляется, а не предполагается. Большинство компиляторов жестко закодировывают модель стоимости. Vx читает ее. Файл машины описывает иерархию памяти и интерконнект реального компонента, и компилятор принимает или отвергает размещения относительно него. Единицы — точные целочисленные преобразования, никогда не числа с плавающей точкой: префиксы SI — десятичные (GB = 10^9), префиксы IEC — двоичные (GiB = 2^30). Число, скопированное с листа спецификаций поставщика, означает то, что имел в виду лист. Репозиторий поставляется с файлами машин для H100, H200, B200, A100, MI300X, Apple M4 и многоузловых конфигураций с несколькими GPU — каждый с указанием источников и пометкой непроверенных данных как непроверенных.
Как компилируется: Передний фронт, ориентированный на данные и параллельный. Каждый символ, номинальный тип и мономорфизованный вариант — это плоский идентификатор из 256 битов. Система номинальных типов плюс обязательная упаковка для рекурсивных типов развязывает модули, так что конвейер работает параллельно по ядрам без механизма запросов и без конкуренции за блокировки. Компиляция проходит по плоским массивам, а не по деревьям, преследуемым указателями. Один и тот же исходный код компилируется в байт-одинаковый MLIR независимо от того, собирается ли он последовательно или параллельно. Это утверждается в наборе тестов, а не просто надеется — на эталонном масштабе, в одном потоке, в четырех потоках, и когда пул потоков полностью удален из пути, плюс корпус перекомпилируется в свежих процессах, чтобы каждый запуск имел свое собственное семя хеша.
Часто задаваемые вопросы: Что такое Vx и что делает его уникальным?
Vx — это язык системного программирования для гетерогенных вычислений, где типы памяти для CPU, GPU, NPU и ускорителей являются частью системы типов. Это предотвращает ошибки времени выполнения, такие как сегфолты, путем обнаружения разыменования указателей устройства во время компиляции. Он рассматривает ускорители как семантические компоненты, а не как инфраструктуру, требуя явных передач данных между пространствами памяти даже когда границы оборудования свободны.
Что такое Vx и что делает его уникальным?
Vx — это язык системного программирования для гетерогенных вычислений, где типы памяти для CPU, GPU, NPU и ускорителей являются частью системы типов. Это предотвращает ошибки времени выполнения, такие как сегфолты, путем обнаружения разыменования указателей устройства во время компиляции. Он рассматривает ускорители как семантические компоненты, а не как инфраструктуру, требуя явных передач данных между пространствами памяти даже когда границы оборудования свободны.
🇨🇳 简体中文
Vx 语言:一种语言,适用于所有芯片
Vx 是一种系统编程语言,用于异构计算,其中 CPU、GPU、NPU 和加速器内存是类型系统的一部分。主机线程解引用设备指针是编译错误,而不是段错误。它适用于苹果硅的 macOS 和 Linux x86_64。异构性应属于类型系统,而非运行时。数据所在位置是其类型的一部分。大多数语言将加速器视为基础设施:你编写数学运算,而一个庞大的不透明运行时决定如何传输它。Vx 将其视为语义。固定在 NPU 高带宽内存中的张量与主机 DRAM 中的张量具有不同的类型,而在它们之间进行转换需要显式的 transfer() — 即使硬件边界是自由的。在苹果的统一内存上,该转换编译后几乎什么也不做。它仍然被编写出来,因为数据局部性应通过读取源代码而非通过分析二进制来证明。
编译器排除了地址空间类型化、容量准入、接缝契约、线性类型、拓扑可达性和自动求导问题。机器是被声明的,而不是被假设的。大多数编译器硬编码了成本模型。Vx 读取一个。机器文件描述了真实部件的内存层次和互连,编译器根据它来接受或拒绝放置。单位是精确的整数转换,从不使用浮点数:SI 前缀是十进制的(GB = 10^9),IEC 是二进制的(GiB = 2^30)。从供应商表格复制的数字意味着表格所指的意思。仓库附带了 H100、H200、B200、A100、MI300X、Apple M4 和多 GPU 节机器文件 — 每个都引用了其来源,并将未验证的数字标记为未验证。
它是如何编译的:面向数据的并行前端。每个符号、名义类型和单态变体都是一个平坦的 256 位标识符。名义类型系统加上对递归类型的强制装箱解耦了模块,使得流水线可以在核心之间并行运行,没有查询引擎和没有锁竞争。编译遍历平坦数组而不是指针追踪的树。无论是串行还是并行构建,相同的源代码编译得到字节相同的 MLIR。这在测试套件中被断言,而不是仅仅希望 — 在基准规模下,单线程、四线程以及线程池完全移除路径的情况下,以及在全新进程中重新编译语料库,使每次运行都有自己的哈希种子。
常见问题:什么是 Vx 以及它有什么独特之处?
Vx 是一种系统编程语言,用于异构计算,其中 CPU、GPU、NPU 和加速器的内存类型是类型系统的一部分。这通过在编译时捕获设备指针解引用来防止运行时错误,如段错误。它将加速器视为语义组件而非基础设施,即使硬件边界是自由的,也要求在内存空间之间进行显式数据传输。
什么是 Vx 以及它有什么独特之处?
Vx 是一种系统编程语言,用于异构计算,其中 CPU、GPU、NPU 和加速器的内存类型是类型系统的一部分。这通过在编译时捕获设备指针解引用来防止运行时错误,如段错误。它将加速器视为语义组件而非基础设施,即使硬件边界是自由的,也要求在内存空间之间进行显式数据传输。