Lots of things from looking up legal docs in non-legalese, through movable roof design for an observatory, through modelling a garage with an a-frame roof, so I can walk in the second floor without ducking, through … the list goes on.
I think the longest running project has to be “my” heterogenous auto-vectorising compiler language though. Been working on this for ~6 months now, pretty much solidly.
It’ll take serially designed code, find areas for vectorisation, and write all of {single-thread CPU, multi-threaded CPU, SIMD, GPU(s) (SPIR-V, MSL, PTX, WGSL) and special hardware (eg SME)}, then at runtime bind the fastest for the machine the binary is running on, measuring to decide, and caching the measurement. Currently I’m working on letting it spread across networked machines (with installed daemons) as well.
It can take naive serial code and produce a binary that will automatically spread it over the optimal execution style for your environment. It compiles for {mac, windows, Linux, iOS, Android, WASM, others}, and every compiler can cross-compile to every target. It can also sign binaries, and doesn’t require any native-platform tools. Oh, and it’s generally faster than GCC and clang or Swift, apart from x86_64/gnu c++ which is 1.05x the speed of xc - these are across a selection of 19 simple non-parallelising (to make it fair) benchmarks, with a geometric mean. Unless you’re multiplying matrices: xc blows everything away then, x86/gcc c++ is 3.6x slower, clang/arm64 is 320x slower…
The speed is the highlight, but the simplicity is the real win - there’s no GPU setup boilerplate, no complicated annotations on code, no channels to set up and memory barriers to maintain, no cognitive load. It uses (a subset of, you can’t push an object onto a GPU) the same language for everything, and automatically manages all the data hazards. It can do that because the data movement is modelled at the IR/SSA level in the compiler.
Apple introduced ARC (Automatic Reference Counting) which was a huge milestone for ObjC, it removed a whole slew of memory bugs and complicated practices with the compiler stepping in to do it for you. This is “ARC for GPUs”, Automatic Resource Control, allowing data-parallel processing to become just another tool in your arsenal, with the compiler stepping in to do it for you.
Sorry, this is a bit gushing [grin], but I’m inordinately pleased with how well this works :)
I've been working on Motor OS for almost five years now. In May during the short Fable window it helped me find and fix a race that I've been debugging for about three months. Since July (when Fable, and later Astra) became available, most items on the roadmap have been fixed. What it would take me ~ 3 months doing myself (evenings and weekends), LLMs complete in about a week (with supervision; even Fable MAX and Astra MAX need supervision when doing critical low-level stuff).
Many web searches that once would have been practically impossible (e.g. due to semantic overloading of the obvious search terms) have become easy, and an LLM can go above and beyond that to synthesize information from multiple sources on different topics. It's as if the power of database joins has come to web research. Taking multiple "conversation turns" to refine with an LLM chat bot is also considerably more powerful than a search engine's "AI overview".
Not the person you're replying to. But I do most of my "deeper" research online with LLM backed tooling these days. Product research in particular you need to instruct the tools to reference latest data and not rely on "memory". Many brands have excellent reputations that degrade steeply over a period of months or years. I've been bit by this both with and without LLM tooling though. If I'm searching for the hours of a local restaurant I'll still just use a search engine.
Aside from building all sorts of cool side projects I wouldn't otherwise have time for, one of my favorite use cases is research.
It's so easy to take a body of literature and distill it down into an hour-ish long summary. Listening to an overview of a topic in podcast form is great if I'm making dinner, working out, cleaning, etc. Now that I have young kids it's rare that I can dedicate time to just sit down and read about something.
I'm not using them at all. I am too worried about certain aspects of the technology and its current trajectory, which I consider a very serious threat to humanity.
Im building all my own personalized apps for all the things that I do. It's pretty amazing, I never get tired of improving and personalizing my apps to more perfectly fit the way I use them.
None are on my github and I don't generally share them or even tell people much about them. My whole life I've been using the same software as everyone else but now it's a whole new world where my software is completely built for me. Software is like a wardrobe now and everyone can design their own clothes.
Lots of things from looking up legal docs in non-legalese, through movable roof design for an observatory, through modelling a garage with an a-frame roof, so I can walk in the second floor without ducking, through … the list goes on.
I think the longest running project has to be “my” heterogenous auto-vectorising compiler language though. Been working on this for ~6 months now, pretty much solidly.
It’ll take serially designed code, find areas for vectorisation, and write all of {single-thread CPU, multi-threaded CPU, SIMD, GPU(s) (SPIR-V, MSL, PTX, WGSL) and special hardware (eg SME)}, then at runtime bind the fastest for the machine the binary is running on, measuring to decide, and caching the measurement. Currently I’m working on letting it spread across networked machines (with installed daemons) as well.
It can take naive serial code and produce a binary that will automatically spread it over the optimal execution style for your environment. It compiles for {mac, windows, Linux, iOS, Android, WASM, others}, and every compiler can cross-compile to every target. It can also sign binaries, and doesn’t require any native-platform tools. Oh, and it’s generally faster than GCC and clang or Swift, apart from x86_64/gnu c++ which is 1.05x the speed of xc - these are across a selection of 19 simple non-parallelising (to make it fair) benchmarks, with a geometric mean. Unless you’re multiplying matrices: xc blows everything away then, x86/gcc c++ is 3.6x slower, clang/arm64 is 320x slower…
The speed is the highlight, but the simplicity is the real win - there’s no GPU setup boilerplate, no complicated annotations on code, no channels to set up and memory barriers to maintain, no cognitive load. It uses (a subset of, you can’t push an object onto a GPU) the same language for everything, and automatically manages all the data hazards. It can do that because the data movement is modelled at the IR/SSA level in the compiler.
Apple introduced ARC (Automatic Reference Counting) which was a huge milestone for ObjC, it removed a whole slew of memory bugs and complicated practices with the compiler stepping in to do it for you. This is “ARC for GPUs”, Automatic Resource Control, allowing data-parallel processing to become just another tool in your arsenal, with the compiler stepping in to do it for you.
Sorry, this is a bit gushing [grin], but I’m inordinately pleased with how well this works :)
I've been working on Motor OS for almost five years now. In May during the short Fable window it helped me find and fix a race that I've been debugging for about three months. Since July (when Fable, and later Astra) became available, most items on the roadmap have been fixed. What it would take me ~ 3 months doing myself (evenings and weekends), LLMs complete in about a week (with supervision; even Fable MAX and Astra MAX need supervision when doing critical low-level stuff).
Many web searches that once would have been practically impossible (e.g. due to semantic overloading of the obvious search terms) have become easy, and an LLM can go above and beyond that to synthesize information from multiple sources on different topics. It's as if the power of database joins has come to web research. Taking multiple "conversation turns" to refine with an LLM chat bot is also considerably more powerful than a search engine's "AI overview".
Are you mainly using LLMs as a search replacement or augmentation? Are you using it in other capacities like code generation, etc?
Not the person you're replying to. But I do most of my "deeper" research online with LLM backed tooling these days. Product research in particular you need to instruct the tools to reference latest data and not rely on "memory". Many brands have excellent reputations that degrade steeply over a period of months or years. I've been bit by this both with and without LLM tooling though. If I'm searching for the hours of a local restaurant I'll still just use a search engine.
At the moment I’m using LLMs for:
A business brain to track tasks, decisions and upcoming events
For coding including firmware
PCB component selection, circuit design and layout
Opportunity scout
Presentations, market research and reviewing legal agreements.
Understanding complex things
Aside from building all sorts of cool side projects I wouldn't otherwise have time for, one of my favorite use cases is research.
It's so easy to take a body of literature and distill it down into an hour-ish long summary. Listening to an overview of a topic in podcast form is great if I'm making dinner, working out, cleaning, etc. Now that I have young kids it's rare that I can dedicate time to just sit down and read about something.
I'm not using them at all. I am too worried about certain aspects of the technology and its current trajectory, which I consider a very serious threat to humanity.
Are you worries on an existential level, or more personal level?
Daily. It doesn't replace my thinking. I use it as another tool.
It's reduced my time spent on complex reporting from many hours to maybe an hour/week.
This is only one way I'm using it.
Im building all my own personalized apps for all the things that I do. It's pretty amazing, I never get tired of improving and personalizing my apps to more perfectly fit the way I use them.
None are on my github and I don't generally share them or even tell people much about them. My whole life I've been using the same software as everyone else but now it's a whole new world where my software is completely built for me. Software is like a wardrobe now and everyone can design their own clothes.