3 ms·
Fair enough, and there are clues in the comments too, but why not just provide the specification of the kernel (inputs and outputs) as part of the problem?
by HarHarVeryFunny 9mo ago
Fair enough, and there are clues in the comments too, but why not just provide the specification of the kernel (inputs and outputs) as part of the problem?
- fc417fc802 9mo agoThey do. They provide reference_kernel which shows the algorithm itself, build_mem_image which shows the data format you will be working with, and finally reference_kernel2 which implements said algorithm on said data format. They then provide you with a very naive implementation that runs on their (very simple) VLIW architecture that you are to optimize. If at the end of that someone is still lost I think it is safe to say it was their goal that person should fail.
- HarHarVeryFunny 9mo agoWell, yes, they have a reference implementation as documentation, just as they have the simulator as documentation for the ISA ... The problem is about pipelining memory loads and ALU operations, so why not just give clear documentatation and state the task rather than "here's a kernel - optimize it"? \_(ツ)_/
- fc417fc802 9mo agoPresumably that is only one of two purposes, with the other being to test your ability to efficiently read, understand, and edit low level code that you didn't write. I imagine you'd regularly run into raw PTX if you worked for them in the relevant capacity. And perhaps a third purpose is to use the simulator to test your ability to reason about hardware that you are only just getting familiar with.
- HarHarVeryFunny 9mo agoI would assume that anyone optimizing kernels at Anthropic has full documentation and specs for what they are working on, as well as a personal butler attending to their every need. This is big money work - every 1% performance improvement must translate to millions of cost savings. Maybe they specified the challenge in this half-assed way to deliberately test those sorts of skills (even if irrelevant to the job), or maybe it was just lazily put together. The other thing to note is that if you look at what the reference_kernel() is actually doing, it really looks like a somewhat arbitrary synthetic task (hashes, wraparound), so any accurate task specification would really need to be a "line by line" description of the steps, at which point you may as well just say "here's some code - do this".
- saagarjha 9mo agoThey do, but documentation is not always complete or correct.
- menaerus 9mo agoIn a fast-paced domain such as this one, and especially wrt the (global) competitiveness, development/leadership process is most likely chaotic and "best" practices that we would normally find in other lower-paced companies cannot be followed here. I think that by underspecifiying the assignment they wanted to test the ability of a candidate to fit into such environment, apart from the obvious reason and which is to filter out not enough motivated candidates.
- mike_hearn 9mo ago> as well as a personal butler attending to their every need I think they do and his name is Claude ;)