{"id":25585511,"url":"https://github.com/alexjmercer/cuda-npp-assignment","last_synced_at":"2026-02-13T10:55:33.640Z","repository":{"id":277902571,"uuid":"933623992","full_name":"AlexJMercer/CUDA-NPP-Assignment","owner":"AlexJMercer","description":"Learning about CUDA and NVIDIA Performance Primitives. Part of Coursera Assignment.","archived":false,"fork":false,"pushed_at":"2025-02-19T16:14:50.000Z","size":9951,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T07:17:41.815Z","etag":null,"topics":["cuda","gpu-programming","npp","nppi"],"latest_commit_sha":null,"homepage":"","language":"C++","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/AlexJMercer.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}},"created_at":"2025-02-16T11:36:36.000Z","updated_at":"2025-02-19T16:14:53.000Z","dependencies_parsed_at":"2025-02-16T22:34:15.683Z","dependency_job_id":null,"html_url":"https://github.com/AlexJMercer/CUDA-NPP-Assignment","commit_stats":null,"previous_names":["alexjmercer/ghostblur-cuda","alexjmercer/cuda-npp-assignment"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexJMercer%2FCUDA-NPP-Assignment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexJMercer%2FCUDA-NPP-Assignment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexJMercer%2FCUDA-NPP-Assignment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlexJMercer%2FCUDA-NPP-Assignment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlexJMercer","download_url":"https://codeload.github.com/AlexJMercer/CUDA-NPP-Assignment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239970675,"owners_count":19727014,"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":["cuda","gpu-programming","npp","nppi"],"created_at":"2025-02-21T07:17:44.579Z","updated_at":"2026-02-13T10:55:33.559Z","avatar_url":"https://github.com/AlexJMercer.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eFastBlur CUDA Assignment\u003c/h1\u003e\r\n\r\n## Purpose\r\n- This project is part of the Coursera CUDA Assignment, specifically, Cuda at Scale for the Enterprise.\r\n- This project aims to demonstrate the use of CUDA for high performance image processing and to provide a hands-on experience with NPP (NVIDIA Performance Primitives).\r\n\r\n\u0026nbsp;\r\n- **NOTE for Peer Reviewers**: Originally the idea was to implement a program that would detect human faces in an image and blur all of them using NPP. Due to OpenCV not properly building with CUDA for the longest time, I decided to implement a simple image blur instead.\r\n- As such there are includes for OpenCV in the code, but they are not used. The code is still functional and demonstrates the use of NPP for image processing.\r\n- I'm still hard at work trying to get OpenCV to build with CUDA, and when that happens, I'll drop another project.\r\n\r\n## Prerequisites\r\nBefore running this project, ensure you have the following installed:\r\n- CUDA Toolkit (12.8 in my case)\r\n- NVIDIA GPU with CUDA capability\r\n- C++ Compiler (e.g., GCC)\r\n- Make\r\n\r\n## How to Run\r\n1. Clone the repository:\r\n    ```sh\r\n    git clone https://github.com/AlexJMercer/CUDA-NPP-Assignment.git\r\n    cd CUDA-NPP-Assignment\r\n    ```\r\n2. Compile the code:\r\n    ```sh\r\n    make clean all\r\n    ```\r\n3. Run the executable:\r\n    ```sh\r\n    ./main\r\n    ```\r\n\r\n## Final Thoughts\r\n- I have built this project inside WSL2 with Ubuntu 24.04 LTS, and ran on a NVIDIA GTX 1650.\r\n- Learnt a great deal about NPP and CUDA in general, however, proper knowledge comes with building even more projects. \r\n\r\nThis is only the beginning.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjmercer%2Fcuda-npp-assignment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexjmercer%2Fcuda-npp-assignment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexjmercer%2Fcuda-npp-assignment/lists"}