cuda-api-wrappers
alacritty
cuda-api-wrappers | alacritty | |
---|---|---|
10 | 352 | |
731 | 52,767 | |
- | 1.0% | |
8.5 | 9.2 | |
3 days ago | 8 days ago | |
C++ | Rust | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
cuda-api-wrappers
-
VUDA: A Vulkan Implementation of CUDA
1. This implements the clunky C-ish API; there's also the Modern-C++ API wrappers, with automatic error checking, RAII resource control etc.; see: https://github.com/eyalroz/cuda-api-wrappers (due disclosure: I'm the author)
2. Implementing the _runtime_ API is not the right choice; it's important to implement the _driver_ API, otherwise you can't isolate contexts, dynamically add newly-compiled JIT kernels via modules etc.
3. This is less than 3000 lines of code. Wrapping all of the core CUDA APIs (driver, runtime, NVTX, JIT compilation of CUDA-C++ and of PTX) took me > 14,000 LoC.
-
WezTerm is a GPU-accelerated cross-platform terminal emulator
> since the underlying API's are still C/C++,
If the use of GPUs is via CUDA, there are my https://github.com/eyalroz/cuda-api-wrappers/ which are RAII/CADRe, and therefore less unsafe. And on the Rust side - don't you need a bunch of unsafe code in the library enabling GPU support?
-
GNU Octave
Given your criteria, you might want to consider (modern) C++.
* Fast - in many cases faster than Rust, although the difference is inconsequential relative to Python-to-Rust improvement I guess.
* _Really_ utilize CUDA, OpenCL, Vulcan etc. Specifically, Rust GPU is limited in its supported features, see: https://github.com/Rust-GPU/Rust-CUDA/blob/master/guide/src/... ...
* Host-side use of CUDA is at least as nice, and probably nicer, than what you'll get with Rust. That is, provided you use my own Modern C++ wrappers for the CUDA APIs: https://github.com/eyalroz/cuda-api-wrappers/ :-) ... sorry for the shameless self-plug.
* ... which brings me to another point: Richer offering of libraries for various needs than Rust, for you to possibly utilize.
* Easier to share than Rust. A target system is less likely to have an appropriate version of Rust and the surrounding ecosystem.
There are downsides, of course, but I was just applying your criteria.
-
How CUDA Programming Works
https://github.com/eyalroz/cuda-api-wrappers
I try to address these and some other issues.
We should also remember that NVIDIA artificially prevents its profiling tools from supporting OpenCL kernels - with no good reason.
-
are there communities for cuda devs so we can talk and grow together?
On the host side however - the API you use to orchestrate execution of kernels on GPUs, data transfers etc. - the official API is very C'ish, annoying and confusing. I have written C++'ish wrappers for it which many enjoy but are of course not officially supported or endorsed: https://github.com/eyalroz/cuda-api-wrappers
- Thin C++-Flavored Wrappers for the CUDA APIs: Runtime, Driver, Nvrtc and NVTX
- Integrating the CUDA APIs (Driver, Runtime, JIT) in pleasant modern-C++ wrappers
-
Cybercriminals who breached Nvidia issue one of the most unusual demands ever
Oh, I really wish those hackers would release the sources rather than pursue their dumbass crypto-mining demands... "We decided to help mining and gaming community" - hurting the gaming community, helping the get-rich-quick "community".
My own C++ wrappers for the CUDA APIs (shameless self-plug: https://github.com/eyalroz/cuda-api-wrappers/) would really benefit a lot from behind-the-curtains access to the driver; and even if I just know how the internal logic of the driver and the runtime works, without actually being able to hook into that logic - I would already be able to leverage this somewhat in my design considerations.
-
AMD’s Lisa Su Breaks Through the Silicon Ceiling
As a person making a living from being the "GPU guy" - I definitely agree.
The ecosystem around AMD GPUs is quite small - and now that they seem to have abandoned OpenCL (possibly not their own fault though) - even that is put into question.
But things are bad even on the NVIDIA side. Example of how bad: I had to write my own C++ bindings for the CUDA runtime API (https://github.com/eyalroz/cuda-api-wrappers/). You'd think they would have that after 13 years of CUDA being available, right? Wrong. I repeatedly tried to pitch this to them, but they seem to suffer from the "Not Invented Here" syndrome (https://learnosity.com/not-invented-here-syndrome-explained/). This despite me having a lot of respect for people like Mark Harris, Bryce Lelbach, Duane Merrill et alia, and their work.
You're also rights about the "two kinds of brains" - or rather, it's not clear to me that the brains creating the silicon and the brains creating the software are in close enough cooperation.
By the way - it is possible to extract a pretty distribution of CUDA to justify run 20 lines of GPGPU code, from their installer. But they won't be bothered to package this nicely for you.
-
How do I use gpus (c++)
Try Vulcan, or OpenCL. There are tons of wrappers for CUDA to make coding simpler ie https://github.com/eyalroz/cuda-api-wrappers
alacritty
-
Terminal Latency
It's opinionated, which comes with upsides and downsides. I won't blame the maintainer to keep things focused, feature creep (even for worthy features) can kill a FOSS project.
Another example is sixel support, there's a fork where it all works but is not sufficiently "proven" (code quality just as well as sixel being the best fit for the problem)
https://github.com/alacritty/alacritty/pull/4763#issuecommen...
It may be annoying but I get the reasoning, and there are other terminals.
-
Level Up Your Dev Workflow: Conquer Web Development with a Blazing Fast Neovim Setup (Part 1)
alacritty (Linux, Macos & Windows)
- Alacritty: A cross-platform, OpenGL terminal emulator
-
Neovide – a simple, no-nonsense, cross-platform GUI for Neovim
> Ligatures: ok, nice, possible in terms too (hopefully Alacritty one day)
I wouldn't hold my breath. Seems like its getting the iPad calculator treatment[0]. Which is to say rather than ship something working that can be improved, they're leaving a UX void.
[0] https://github.com/alacritty/alacritty/issues/50
-
I Just Wanted Emacs to Look Nice – Using 24-Bit Color in Terminals
IME, this is like the golden age of terminal apps in general and macOS-compatible ones in particular. There are several really good terminals for macOS:
[iTerm2 app](https://iterm2.com/)
[Kitty terminal](https://sw.kovidgoyal.net/kitty/)
[WezTerm terminal](https://wezfurlong.org/wezterm/index.html)
[Alacritty](https://github.com/alacritty/alacritty)
My daily driver is WezTerm…
- Runs on Linux, macOS, Windows 10 and FreeBSD
- [Multiplex terminal panes, tabs and windows on local and remote hosts, with native mouse and scrollback](https://wezfurlong.org/wezterm/multiplexing.html)
- [Ligatures](https://github.com/tonsky/FiraCode#fira-code-monospaced-font...), Color Emoji and font fallback, with true color and [dynamic color schemes](https://wezfurlong.org/wezterm/config/appearance.html#colors).
- [Hyperlinks](https://wezfurlong.org/wezterm/hyperlinks.html)
- [Searchable Scrollback](https://wezfurlong.org/wezterm/scrollback.html) (use mouse wheel and `Shift-PageUp` and `Shift PageDown` to navigate, Ctrl-Shift-F to activate search mode)
- xterm style selection of text with mouse; paste selection via `Shift-Insert` (bracketed paste is supported!)
- SGR style mouse reporting (works in vim and tmux)
- Render underline, double-underline, italic, bold, strikethrough (most other terminal emulators do not support as many render attributes)
- Configuration via a [configuration file](https://wezfurlong.org/wezterm/config/files.html) with hot reloading
- Multiple Windows (Hotkey: `Super-N`)
- Splits/Panes (Split horizontally/vertically: `Ctrl-Shift-Alt-%` and `Ctrl-Shift-Alt-"`, move between panes: `Ctrl-Shift-ArrowKey`)
- Tabs (Hotkey: `Super-T`, next/prev: `Super-Shift-[` and `Super-Shift-]`, go-to: `Super-[1-9]`)
- [SSH client with native tabs](https://wezfurlong.org/wezterm/ssh.html)
- [Connect to serial ports for embedded/Arduino work](https://wezfurlong.org/wezterm/serial.html)
- Connect to a local multiplexer server over unix domain sockets
- Connect to a remote multiplexer using SSH or TLS over TCP/IP
- iTerm2 compatible image protocol support, and built-in [imgcat command](https://wezfurlong.org/wezterm/imgcat.html)
- Kitty graphics support
- Sixel graphics support (experimental: starting in `20200620-160318-e00b076c`)
-
alacritty-themes not working any more!!!
# We use Alacritty's default Linux config directory as our storage location here. mkdir -p ~/.config/alacritty/themes git clone https://github.com/alacritty/alacritty-theme ~/.config/alacritty/themes
-
The Linux graphics stack in a nutshell, part 2
if by 'in the terminal' you mean 'in a program emulating an ascii terminal' then no, because ascii terminals don't support anything that looks better than ascii art. they don't support sixel either. there are a variety of proposals for how to add graphics to ascii terminal emulators in a backwards-compatible way, such as mgr and notty https://github.com/alacritty/alacritty/issues/51
but the 'terminal' that a terminal emulator is emulating is a device which provides a user access to a remote computer. normally nowadays this is a laptop or cellphone. in that case, yes, you can use x-windows, xpra, vnc, or a web browser
-
Pimp your CLI
A decent terminal application (i.e: iterm2, alacritty, etc.)
-
What GPU Accelerated terminal do you recommend for Linux
I have been having random input lags with Alacritty. Initially I thought it was my custom neovim config. After some investigation, I have found an Alacritty github issue where users are reporting the same issue: https://github.com/alacritty/alacritty/issues/6844
-
Keypress delay
Thank you for your suggestions. I have now narrow it down to my terminal emulator. Alacritty. More precisely this issue: https://github.com/alacritty/alacritty/issues/6844
What are some alternatives?
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
kitty - Cross-platform, fast, feature-rich, GPU based terminal
Duilib
wezterm - A GPU-accelerated cross-platform terminal emulator and multiplexer written by @wez and implemented in Rust
ILGPU - ILGPU JIT Compiler for high-performance .Net GPU programs
Warp - Warp is a modern, Rust-based terminal with AI built in so you and your team can build great software, faster.
nana - a modern C++ GUI library
starship - ☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
AdaptiveCpp - Implementation of SYCL and C++ standard parallelism for CPUs and GPUs from all vendors: The independent, community-driven compiler for C++-based heterogeneous programming models. Lets applications adapt themselves to all the hardware in the system - even at runtime!
FiraCode - Free monospaced font with programming ligatures
Elements C++ GUI library - Elements C++ GUI library
neofetch - 🖼️ A command-line system information tool written in bash 3.2+