{"id":21115906,"url":"https://github.com/thomasjo/cudalicious","last_synced_at":"2025-07-18T14:32:43.532Z","repository":{"id":140398091,"uuid":"63313909","full_name":"thomasjo/cudalicious","owner":"thomasjo","description":"C++ header library intended to reduce CUDA boilerplate code","archived":false,"fork":false,"pushed_at":"2017-04-10T09:53:51.000Z","size":19,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-21T04:41:39.290Z","etag":null,"topics":["boilerplate","cpp","cuda","header-only"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thomasjo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-14T07:42:36.000Z","updated_at":"2019-06-22T13:35:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"275262b0-abe9-4317-a30e-af95dc26ec23","html_url":"https://github.com/thomasjo/cudalicious","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasjo%2Fcudalicious","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasjo%2Fcudalicious/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasjo%2Fcudalicious/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thomasjo%2Fcudalicious/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thomasjo","download_url":"https://codeload.github.com/thomasjo/cudalicious/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243560852,"owners_count":20310994,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["boilerplate","cpp","cuda","header-only"],"created_at":"2024-11-20T02:02:02.021Z","updated_at":"2025-03-14T10:26:59.613Z","avatar_url":"https://github.com/thomasjo.png","language":"C++","readme":"# Cudalicious\n\nC++ header library intended to reduce the amount of CUDA boilerplate code — and\nhopefully less error-prone.\n\n## Huh?\nOK, let's assume we have a container with some arbitrary data,\n\n``` c++\nconst std::vector\u003cfloat\u003e foo // ...\n```\n\nIf we want to use this data in a CUDA kernel, we can do something like this in\norder to copy the data from the host to the device\n\n``` c++\nconst auto foo_size = sizeof(float) * foo.size();\nfloat* d_foo;\ncudaMalloc(\u0026d_foo, foo_size);\ncudaMemcpy(d_foo, foo.data(), foo_size, cudaMemcpyHostToDevice);\n```\n\nThat's lot of boilerplate code simply to copy some data to the GPU. The\nobservant reader might also have noticed this code does not perform any error\nchecking on those two CUDA functions...\n\nHowever, if we use Cudalicious, the code above can \"magically\" be written as\n\n``` c++\nauto d_foo = cuda::copy_to_device(foo);\n```\n\nThis is equivalent to the original code, with the added benefit that it also\nchecks for errors :zap:\n\n## Usage\nSimply grab the header files from the `include` directory, include the ones you\nneed, and you should be good to go.\n\nSee the accompanying examples to get a sense of what your code can look like if\nyou end up giving this library a chance.\n\n## Disclaimer\nThis project is in an early alpha phase and is probably not ready for real\nproduction use.\n\nAny and all help is very much appreciated.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasjo%2Fcudalicious","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthomasjo%2Fcudalicious","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthomasjo%2Fcudalicious/lists"}