Reminds me of a C++ codebase I once had to inspect that was entirely written as if it were written in Java. With camelcase naming for everything, getters and setters for every class variable, interfaces everywhere.
HN user
gpuhacker
As this mentions some prior art but not rCUDA (https://en.m.wikipedia.org/wiki/RCUDA) I'm a bit confused about what makes scuda different.
It also assumes all reads and writes are volatile. In the real world, threads can witness out-of-order execution in different threads.
In my opinion, Astron's PMT (Power Measurement Toolkit) is a much more useful tool than this, because it abstracts over Intel, AMD, and Nvidia (including Jetson): https://git.astron.nl/RD/pmt
There is also a paper about PMT: https://arxiv.org/pdf/2210.03724
For GPUs: https://arxiv.org/pdf/2211.07260
All of the above
From the wiki page:
"In 2018, professors Alan Benson, Danielle Li, and Kelly Shue analyzed sales workers' performance and promotion practices at 214 American businesses to test the veracity of the Peter principle. They found that these companies tended to promote employees to a management position based on their performance in their previous position, rather than based on managerial potential. Consistent with the Peter principle, the researchers found that high performing sales employees were likelier to be promoted, and that they were likelier to perform poorly as managers, leading to considerable costs to the businesses.[15][16][2]"
Surprises me to see I'm the first comment here to say: I just use GPT4 for this. Works perfectly, even for getting the Latex source of a formula you only have a screenshot of.
Probably quite the overkill in terms of energy efficiency for just image to text, but I only need this like once every two weeks or so.
In the city where I live, also in the Netherlands, we had multiple of these but all of them got converted back to normal intersections with traffic lights and it has been a huge improvement.
Brings back high school memories when we used to shutdown peoples mIRC client with a special message that you could send as a personal message to them.
I don't know it anymore but I remember it started with a whole bunch of aaaaaaa, but also included other characters. The beauty is the attack left no trace at all, so they never knew what hit them.
There was a company in the Netherlands, can't seem to find the name right now, that rented out GPU clusters as central heaters, while using the GPUs to mine crypto. I believe they went backrupt during the whole crypto crash and energy crisis.
I think they refer to Lich. From wikipedia: In fantasy fiction, a lich (/ˈlɪtʃ/;[1] from the Old English līċ, meaning "corpse") is a type of undead creature. https://en.m.wikipedia.org/wiki/Lich
Does anyone happen to know of a similar tool that can compare two codes for semantic similarity?
It's incredibly useful if you have many threads that produce a variable number of outputs. Imagine you're implementing some filtering operation on the GPU, many threads will take on a fixed workload and then produce some number of outcomes. Unless we take some precautions, we have a huge synchronization problem when all threads try to append their results to the output. Note that GPUs didn't have atomics for the first couple of generations that supported CUDA, so you couldn't just getAndIncrement an index and append to an array. We could store those outputs in a dense structure, allocating a fixed number of output slots per thread, but that would leave many blanks in between the results. Now once we know the number of outputs per thread we can use a prefix sum to let every thread know where they can write their results in the array.
The outcome of a prefix sum exactly corresponds with the "row starts" part of the CSR sparse matrix notation. So they are also essential when creating sparse matrices.
I haven't tried WebGPU yet, is there an overall performance hit compared to direct CUDA programming?
AFAIK Thrust is intended to simplify GPU programming. It could well be that for specific use cases, in particular when it is possible to fuse multiple operations into single kernels, you could outperform Thrust.
Ah thanks! That's good to know.
I bought the first edition when it came out, and definitely it was a gold mine of information on the subject. I wonder though, is the fourth edition worth buying another copy? Nvidia has been advancing CUDA, in particular moving more towards C++ in the kernel language. But none of that was present when this book came out in 2007. Now more and more stuff is happening at thread block level with the cooperative group C++ API and warp level for tensor cores. It would be great if the authors revisited all the early chapters to modernize that content, but that's a lot of work so I don't usually count on authors making such an effort for later editions.
If you want to go really in-depth I can recommend GTC on demand. It's Nvidia streaming platform with videos from past GTC conferences. Tony Scuderio had a couple of videos on there called GPU memory bootcamp that are among the best advanced GPU programming learning material out there.
As a home brewer myself, I'd say it's not harder to make just more expensive.
It does. There's an overuse of graphs and especially the lack of units and y-axis labels on some of the graphs was annoying, but overall it's still a quite interesting and entertaining read in my opinion.
I live in the Netherlands. My own gas usage was 25% lower in 2022 compared to the average over 2019-2021. We didn't do anything drastic to reduce gas usage. The first 3 months of 2023 were somewhat colder with gas usage is much closer to Spring 2021 and nowhere near as low as Spring 2022. I wonder how accurate the model used in this article is. The article isn't very clear on what kind of temperature values are used as input to this model. Is it daily mean? Hourly? I can imagine that you want to somehow factor in the diurnal cycle which would be obscured by daily means.
Surely reminds me of Harry Potter and the Prisoner of Azkaban, where Harry is saved by himself as he at some point in the future travels back in time to save himself.
Brilliant! Wish the license was explicitly stated on the page.
Earlier discussion: https://news.ycombinator.com/item?id=15867918
Anecdotal, but worth sharing anyways: I read a comment on HN in 2018 from someone who mentioned a connection between migraine and vitamin D deficiency. I started taking vitamin D after that and my migraines have decreased from once every three weeks to about three times per year.
I always find it disappointing when people equate CS to programming. In my view, programming is a at most a means to an end in CS. A tool that we use to show that something is possible, to implement a proof of concept. By looking at the code we can understand in a formally defined language how certain systems work. It is definitely an important tool in CS, and a practical skill that CS students can use in their professional life after graduation. But I become rather sad when I see three Python programming courses being put together and people call it a CS curriculum.
I'm very unfamiliar with this family of tools, but if anyone knows a tool like this that can monitor arxiv or Google scholar for new papers matching a particular query, I'm very interested. I checked Zapier recently but I didn't see these among the support apps.
Same here, I read the Readme twice and was still puzzled what this is for.
This is a great post for people who are new to optimizing GPU code.
It is interesting to see that the author got this far without interchanging the innermost loop over k to the outermost loop, as is done in CUTLASS (https://github.com/NVIDIA/cutlass).
As you can see in this blog post the code ends up with a lot of compile-time constants (e.g. BLOCKSIZE, BM, BN, BK, TM, TN) one way to optimize this code further is to use an auto-tuner to find the optimal value for all of these parameters for your GPU and problem size, for example Kernel Tuner (https://github.com/KernelTuner/kernel_tuner)
I also live in the Netherlands. I confirm that the above comment very accurately describes the agriculture situation in the Netherlands, much more so than the washington post article.
I experienced this together with a friend while we were CS students. I went with him to a store to get several pieces of carpet. We needed each to be sized roughly about 1 meter by 3 or 4 meters. For some reason, both of us were quite worried about the long pieces not fitting in the car easily. Even when the person in the store had cut the pieces and they were on the floor in front of us we were looking puzzled at the lengths not fitting in the car. Then we were amazed to see our friendly salesperson stacking the pieces on top of eachother and rolling them up on the short end, creating a thick roll of carpet of about 1 meter long that would fit in the car without any issue. We were both laughing and feeling a bit ashamed that neither of us had thought of this simple solution and that we were really worried for nothing all this time.