HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
eyalroz
cuda-kat
Cuda2020–2020
eyalroz / cuda-kat

cuda-kat

CUDA kernel author's tools

2Distinct people
3Mentions
0Explicit recommenders
117GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

CUDA kernel author's tools

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week3 dated mentions

Observed mentions: 2020-05-03 21:56:49 UTC to 2020-09-19 22:34:09 UTC. Weeks start Monday, UTC.

0122020-04-27 00:00:00 UTC to 2020-05-04 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsApr 272020-05-04 00:00:00 UTC to 2020-05-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-05-11 00:00:00 UTC to 2020-05-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-05-18 00:00:00 UTC to 2020-05-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-05-25 00:00:00 UTC to 2020-06-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-01 00:00:00 UTC to 2020-06-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-08 00:00:00 UTC to 2020-06-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-15 00:00:00 UTC to 2020-06-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-22 00:00:00 UTC to 2020-06-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-06-29 00:00:00 UTC to 2020-07-06 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-07-06 00:00:00 UTC to 2020-07-13 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJul 62020-07-13 00:00:00 UTC to 2020-07-20 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-07-20 00:00:00 UTC to 2020-07-27 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-07-27 00:00:00 UTC to 2020-08-03 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-03 00:00:00 UTC to 2020-08-10 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-10 00:00:00 UTC to 2020-08-17 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-17 00:00:00 UTC to 2020-08-24 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-24 00:00:00 UTC to 2020-08-31 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-08-31 00:00:00 UTC to 2020-09-07 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-09-07 00:00:00 UTC to 2020-09-14 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-09-14 00:00:00 UTC to 2020-09-21 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 commentsSep 14

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Apr 272020-04-27 00:00:00 UTC2020-05-04 00:00:00 UTC101
May 42020-05-04 00:00:00 UTC2020-05-11 00:00:00 UTC000
May 112020-05-11 00:00:00 UTC2020-05-18 00:00:00 UTC000
May 182020-05-18 00:00:00 UTC2020-05-25 00:00:00 UTC000
May 252020-05-25 00:00:00 UTC2020-06-01 00:00:00 UTC000
Jun 12020-06-01 00:00:00 UTC2020-06-08 00:00:00 UTC000
Jun 82020-06-08 00:00:00 UTC2020-06-15 00:00:00 UTC000
Jun 152020-06-15 00:00:00 UTC2020-06-22 00:00:00 UTC000
Jun 222020-06-22 00:00:00 UTC2020-06-29 00:00:00 UTC000
Jun 292020-06-29 00:00:00 UTC2020-07-06 00:00:00 UTC000
Jul 62020-07-06 00:00:00 UTC2020-07-13 00:00:00 UTC000
Jul 132020-07-13 00:00:00 UTC2020-07-20 00:00:00 UTC000
Jul 202020-07-20 00:00:00 UTC2020-07-27 00:00:00 UTC000
Jul 272020-07-27 00:00:00 UTC2020-08-03 00:00:00 UTC000
Aug 32020-08-03 00:00:00 UTC2020-08-10 00:00:00 UTC000
Aug 102020-08-10 00:00:00 UTC2020-08-17 00:00:00 UTC000
Aug 172020-08-17 00:00:00 UTC2020-08-24 00:00:00 UTC000
Aug 242020-08-24 00:00:00 UTC2020-08-31 00:00:00 UTC000
Aug 312020-08-31 00:00:00 UTC2020-09-07 00:00:00 UTC000
Sep 72020-09-07 00:00:00 UTC2020-09-14 00:00:00 UTC000
Sep 142020-09-14 00:00:00 UTC2020-09-21 00:00:00 UTC202

What Hacker News says

3 sources
> apparently only a small bit of the library is actually implemented. Yep. It's an incremental project. But stay tuned. > I'm somewhat suspicious of the presumption of us using NVIDIA's version of the standard library for our host-side work. Today, when using libcu++ with NVCC, it's opt-in and doesn't interfere with your host standard library. I get your concern, but a lot of the restrictions of today's GPU toolchains comes from the desire to continue using your host toolchain of choice. Our other compiler, NVC++, is a unified stack; there is no host compiler. Yes, that takes away some user control, but it lets us build things we couldn't build otherwise. The same logic applies for the standard library. https://developer.nvidia.com/blog/accelerating-standard-c-wi... > Finally, I'm not sure that, for device-side work, libc++ is a better ba
Read the rest
se to start off of than, say, EASTL (which I used for my tuple class: https://github.com/eyalroz/cuda-kat/blob/master/src/kat/tupl... ). We wanted an implementation that intended to conform to the standard and had deployment experience with a major C++ implementation. EASTL doesn't have that, so it never entered our consideration; perhaps we should have looked at it, though. At the time we started this project, Microsoft's Standard Library wasn't open source. Our choices were libstdc++ or libc++. We immediately ruled libstdc++ out; GPL licensing wouldn't work for us, especially as we knew this project had to exchange code with some of our other existing libraries that are under Apache- or MIT-style licenses (Thrust, CUB, RAPIDS). So, our options were pretty clear; build it from scratch, or use libc++. I have a strict policy of strategic laziness, so we went with libc++.
In Libcu++: Nvidia C++ Standard Library
1. How do we know what parts of the library are usable on CUDA devices, and which are only usable in host-side code? 2. How compatible is this with libstdc++ and/or libcu++, when used independently? I'm somewhat suspicious of the presumption of us using NVIDIA's version of the standard library for our host-side work. Finally, I'm not sure that, for device-side work, libc++ is a better base to start off of than, say, EASTL (which I used for my tuple class: https://github.com/eyalroz/cuda-kat/blob/master/src/kat/tupl... ). ... partial self-answer to (1.): https://nvidia.github.io/libcudacxx/api.html apparently only a small bit of the library is actually implemented.
In Libcu++: Nvidia C++ Standard Library
> GPUs. Biggest compute engines we have. How do we program them? 1. Carefully. They only give you - roughly and unless you're super-lucky - around one order of magnitude improvement in raw flops and raw GB/sec memory bandwidth over a perfectly-exploited CPU. (Not that it's easy to properly exploit a CPU of course; it's actually quite difficult.) That means that if you cut even a few corners - you're just going to lose that edge, and a (again, perfectly-programmed) CPU beats you. 2. With a programming language which has zero or very-low cost abstractions, and models well the computations a GPU "thread" can perform. Preferably with some JIT'ing capability to be dynamic enough. For the first two, that trusty warthog, C++, does fairly well - especially with some help from nice libraries. (Shameless self-plug time... this kind of help: https:/
Read the rest
/github.com/eyalroz/cuda-kat ; I'm thinking of submitting that to "Show HN" soon.) JITing for GPUs is maaaaasively under-explored and under-developed IMHO, and if someone is interesting in collaborating on that, feel free to write me. Would other languages do? If there's not enough ability to abstract, you get a mountain of specialized code; if there's too much abstraction, you start paying through your nose. Could Rust work? I don't know. Perhaps one of those "better C"'s like Zig? The fact that CPU-side libraries can't really run on the GPU kind of levels the playing field against languages with a large base of already-written software. > Ownership... C++ now tries to do "move semantics", with modest success, but has trouble checking at compile time for ownership errors Actually, C++ has, over the past decade or so, introduced several measures to address the issue of ownership and resource leakage. If you combine move semantics, library facilities (mostly smart pointers), the problem is half-solved. Static analysis is improving too, especially when you "decorate" parameters, e.g. with `owner<T>` or `non_null<T>` and such. The "C++ Core Guidelines" (https://github.com/isocpp/CppCoreGuidelines) aim to be machine-checkable whenever possible.
In The naked truth about writing a programming language (2014)

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.