{"id":19740631,"url":"https://github.com/juliagpu/nvvm.jl","last_synced_at":"2025-09-07T06:39:09.051Z","repository":{"id":236985942,"uuid":"653683332","full_name":"JuliaGPU/NVVM.jl","owner":"JuliaGPU","description":"Julia interface to the NVIDIA NVVM compiler library.","archived":false,"fork":false,"pushed_at":"2025-08-06T07:48:44.000Z","size":20,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-08-06T09:32:31.276Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JuliaGPU.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2023-06-14T14:16:04.000Z","updated_at":"2025-08-06T07:48:47.000Z","dependencies_parsed_at":"2024-11-12T01:23:36.021Z","dependency_job_id":"c889de8c-063a-400e-81c5-c1e108a31ca5","html_url":"https://github.com/JuliaGPU/NVVM.jl","commit_stats":null,"previous_names":["juliagpu/nvvm.jl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JuliaGPU/NVVM.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaGPU%2FNVVM.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaGPU%2FNVVM.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaGPU%2FNVVM.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaGPU%2FNVVM.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JuliaGPU","download_url":"https://codeload.github.com/JuliaGPU/NVVM.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JuliaGPU%2FNVVM.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274005338,"owners_count":25205934,"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","status":"online","status_checked_at":"2025-09-07T02:00:09.463Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-12T01:22:37.686Z","updated_at":"2025-09-07T06:39:09.012Z","avatar_url":"https://github.com/JuliaGPU.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# NVVM.jl\n\nJulia wrappers for generating PTX code with the NVIDIA NVVM library.\n\n\n## Quicks start\n\nLet's start with some dummy IR that conforms to NVVM IR v2 (aka. LLVM 7.0):\n\n```llvm\ntarget datalayout = \"e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-i128:128:128-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64\"\ntarget triple = \"nvptx64-nvidia-cuda\"\n\ndefine void @kernel() {\nentry:\n    ret void\n}\n\n!nvvm.annotations = !{!0}\n!0 = !{void ()* @kernel, !\"kernel\", i32 1}\n\n!nvvmir.version = !{!1}\n!1 = !{i32 2, i32 0}\n```\n\nWith NVVM.jl, you can compile this IR to PTX:\n\n```julia\nusing NVVM\n\nprog = Program()\nadd!(prog, ir)\nverify(ir)\ncompile(prog)\n```\n\n```\n//\n// Generated by NVIDIA NVVM Compiler\n//\n// Compiler Build ID: CL-32688072\n// Cuda compilation tools, release 12.1, V12.1.105\n// Based on NVVM 7.0.1\n//\n\n.version 8.1\n.target sm_52\n.address_size 64\n\n\t// .globl\tkernel\n\n.visible .entry kernel()\n{\n\tret;\n}\n```\n\nTo set compiler options, pass keyword arguments to `compile` or `verify`. You can use\nJulia keyword arguments to specify these options, using slightly user-friendlier syntax:\n\n```\njulia\u003e compile(prog; arch=v\"8.0\", debug=true, opt=0, prec_sqrt=false)\n// Generated by NVIDIA NVVM Compiler\n.target sm_80\n...\n```\n\n\n## Limitations\n\nWe always use the latest libNVVM, which means that you have to stick to the NVVM IR version\nit supports (currently v2.0), or use an older version of NVVM.jl. More problematically,\nthat also means that the PTX version will be set to the latest ISA version (currently 8.1),\nwhich may not be supported by your driver. A feature request has been filed with NVIDIA\nto make this configurable.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliagpu%2Fnvvm.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjuliagpu%2Fnvvm.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjuliagpu%2Fnvvm.jl/lists"}