Here's the first CUDA kernel emulated directly on my Mac!
I am going to port every CUDA concept into Metal shaders in order to create a compatibility layer for learning CUDA on Mac.
Next steps:
> expanding kernel support (shared memory, warp-level, memory coalescing, reduction operations)
> support of CUDA host code
could you make a model more creative by editing what it's thinking instead of what you ask it? drop an unexpected concept into the ones it's already holding mid-task and see if it builds something a prompt wouldn't.
you can actually read those held concepts now (@AnthropicAI workspace decoded with a jacobian lens) so i tried writing one in.
design a chair, "spider" set straight into the activations, never in the prompt. it wrote: "start with a large ball of string, keep it taut." it built the chair like a web, not a spider.
it took what a spider makes, not what it looks like. i liked it too much to trust it.
so i ran it eight times. it happened once. the other seven were generic or wandered off (one went on about people in 2044). one hit in eight.
then the boring control: just write "use a spider" in the prompt. eight legs and a body, every single run. never the web. eight in eight, always the obvious reading.
i wanted to score "did it actually use the idea" automatically. two obvious metrics, both useless. so this is me reading outputs by hand, small n, one tiny model.
soft read: a concept in the prompt locks onto its obvious meaning, every time. set inside the model, it skips the text and once in a while wanders to a side of it the prompt never reaches. more slot machine than method, at least here. but it doesn't feel like the same move as prompting. still poking.
could you make a model more creative by editing what it's thinking instead of what you ask it? drop an unexpected concept into the ones it's already holding mid-task and see if it builds something a prompt wouldn't.
you can actually read those held concepts now (@AnthropicAI workspace decoded with a jacobian lens) so i tried writing one in.
design a chair, "spider" set straight into the activations, never in the prompt. it wrote: "start with a large ball of string, keep it taut." it built the chair like a web, not a spider.
it took what a spider makes, not what it looks like. i liked it too much to trust it.
so i ran it eight times. it happened once. the other seven were generic or wandered off (one went on about people in 2044). one hit in eight.
then the boring control: just write "use a spider" in the prompt. eight legs and a body, every single run. never the web. eight in eight, always the obvious reading.
i wanted to score "did it actually use the idea" automatically. two obvious metrics, both useless. so this is me reading outputs by hand, small n, one tiny model.
soft read: a concept in the prompt locks onto its obvious meaning, every time. set inside the model, it skips the text and once in a while wanders to a side of it the prompt never reaches. more slot machine than method, at least here. but it doesn't feel like the same move as prompting. still poking.
yesterday @AnthropicAI showed there's a tiny "global workspace" inside claude: a little space where the concepts it's about to use actually live. i spent an evening reproducing it on an open model to understand it.
they open-sourced the tool that finds it (the "jacobian lens") so all you need is open weights. i used qwen2.5-3b.
the math is simpler than it sounds. concepts are directions in the model's activations and the lens gives you the direction for any word:
v = E_t @ J
(J is the average jacobian from a middle layer to the output. read it as "the internal direction that makes the model lean toward saying t")
so i grabbed the direction for "france" and for "china," and made one edit at the middle layers:
h → h − (h·û_france)·û_france + (h·û_china)·û_china
in words: measure how much the activation is "france," remove it, add the same amount of "china" one vector, nudged. no retraining.
then i asked four unrelated questions about france:
capital → beijing
language → chinese
continent → asia
currency → renminbi
all four flipped from that single edit.
the fun detail: the prompt still says "france," but the model answers "the capital of china is beijing." the internal thought overrode the text it was given.
why do four facts move from one edit? they all read the same "country" slot. capital, language, and continent are separate circuits, but they all look at the same spot. change the spot, everything downstream follows. that's the workspace.
and it's not a fluke. i swept the edit strength from 0 to 1 and measured the model's preference on each fact. all four cross over together, and even a ~5% nudge flips them. 12/12 across france→china, japan→brazil, italy→egypt.
the nice part: concepts here aren't mush. they're directions you can grab, with a shared stage where the important ones get broadcast to everything else
New Anthropic research: A global workspace in language models.
Of everything happening in your brain right now, only a tiny fraction is consciously accessible—thoughts you can describe, hold in mind, and reason with.
We found a strikingly similar divide inside Claude.
cooking for arc.
infinite verifiable worlds, hidden rules. an open model only sees the opaque grid (right) and has to infer everything by poking at it.
hard enough that gpt-5.5 solves 7%. my 8B: 3 real solves so far.
RL next. @arcprize
been messing with getting LLMs to design analog circuits and grading them with SPICE... The nice thing is the reward is just physics, the model can't talk its way out of it and the interesting part is the only way to hack it is exploiting the sim itself
Build your own benchmark. You will learn a lot (esp about reward hacking) and have a decent chance of getting a job! Evals/RL envs are a skill high in demand regardless of what the env is based on.