> Is the intent that applications developed with this are compiled for target hardware on a machine-specific basis?
Vx gives you the power to do so, but one can be conservative by putting all the values in the fleet/*.vx files to extreme values. An analogy to that would be when we compile for X86-64, we can specify `-mcpu` otherwise by default the compiler picks a conservative backend.
Vx allows one to define compute elements(number of cores, etc), memory elements (number of distinct memory elements, hierarchy if any) and their relationship (placement, ownership etc). Together they define the toplogoy of a machine. Toplogy goes into machine description files (see https://github.com/vx-lang/Vx/tree/main/fleet) and the compiler uses them to 'monomorphize' the program based on that topology.
fwiw I recently tried this with ChatGPT. The result (https://bil-lang.org) came after I dumped the LLM as a name suggester. As a checker and idea source it was fine. The language name space is quite crowded!
Rust/C/C++ all have a similar memory model, they were designed for a linear memory model. a `float` does not carry the provenance (a float out of cudaMalloc or a malloc look the same to the rest of the program). This is the fundamental problem that very few (e.g., Vx vxlang.org) are trying to address.
I just ask LLM to to give me a short tutorial on the thing i want to learn but i dont want to start from chapter-1, that is boring. so i upload my resume and say that make this tutorial based on the skillsets i already have.
btw, this is a much better experience than watching Youtube videos for learning.
There are market verticals where this makes a lot of sense. Embedded systems and IoT devices comes to mind.
Even in data center space, I believe several layers can use fixed weights and remaining layers will compensate for the variations. Power savings will be huge so I think there is an incentive to do more of these.
Even for consumers.. Every enthusiast now wants those specced out rigs to play with LLMs. Make a nice chip for that, and it will reduce some pressure on consumer RAM demand
Reminded me of a bit from the GOAT political comedy Yes, Prime Minister:
"But he's the Prime Minister!"
"Indeed he is Bernard. He has his own car, a nice house in London, a place in the country, endless publicity and a pension for life. What more does he want?"
"Tobacco-related diseases cost the NHS £150 million per year!"
"Yes we've looked into that, it turns out that if those people had survived they would have cost us billions in pensions and healthcare costs! From a financial perspective, it's vastly preferable that they continue to die at the current rate."
I would not have chosen the word governing for that sentence but I'm not sure what fits best. Plundering, pillaging, gutting, ransacking, Rick rolling, despoilng, or perhaps molesting.
At $work, r&d once had a retreat with a consultant to discuss why our productivity was too low per some spreadsheet. The consultant was told how everyone is in meetings all day so we all stole time from our families at night to get any work done at all. :(
Someone I know who did a lot of consulting said consulting was very easy 1. Go in and talk to employees about what is wrong 2. Tell management what the employees said without mentioning it came from the employees (so that management wouldn't dismiss it out of hand) 3. Charge a lot of money so management felt like it was very valuable feedback
Vx gives you the power to do so, but one can be conservative by putting all the values in the fleet/*.vx files to extreme values. An analogy to that would be when we compile for X86-64, we can specify `-mcpu` otherwise by default the compiler picks a conservative backend.
Vx allows one to define compute elements(number of cores, etc), memory elements (number of distinct memory elements, hierarchy if any) and their relationship (placement, ownership etc). Together they define the toplogoy of a machine. Toplogy goes into machine description files (see https://github.com/vx-lang/Vx/tree/main/fleet) and the compiler uses them to 'monomorphize' the program based on that topology.