{"id":17777175,"url":"https://github.com/sebftw/interp2gpu","last_synced_at":"2026-05-10T07:56:26.472Z","repository":{"id":259514046,"uuid":"858782473","full_name":"sebftw/interp2gpu","owner":"sebftw","description":"GPU-accelerated 2D spline interpolation, à la interp2(..., \"spline\"), in MATLAB.","archived":false,"fork":false,"pushed_at":"2024-12-09T09:19:34.000Z","size":917,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-09T10:26:00.098Z","etag":null,"topics":["cuda","gpu","gpu-acceleration","matlab","spline","spline-interpolation"],"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/sebftw.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-09-17T14:23:45.000Z","updated_at":"2024-12-09T09:19:38.000Z","dependencies_parsed_at":"2024-10-26T05:40:15.165Z","dependency_job_id":"5d62ff66-88f8-4732-a7c6-ac9461fd828b","html_url":"https://github.com/sebftw/interp2gpu","commit_stats":{"total_commits":16,"total_committers":2,"mean_commits":8.0,"dds":0.0625,"last_synced_commit":"c616a0d1df7cae0da8fb08b3651abb923b0a7685"},"previous_names":["sebftw/interp2gpu"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebftw%2Finterp2gpu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebftw%2Finterp2gpu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebftw%2Finterp2gpu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebftw%2Finterp2gpu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebftw","download_url":"https://codeload.github.com/sebftw/interp2gpu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229691796,"owners_count":18108503,"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","gpu-acceleration","matlab","spline","spline-interpolation"],"created_at":"2024-10-26T23:05:25.148Z","updated_at":"2026-05-10T07:56:26.467Z","avatar_url":"https://github.com/sebftw.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fast 2D Spline Interpolation\n__interp2gpu__ is a drop-in replacement to `interp2` to perform fast spline interpolation on the GPU in MATLAB.\u003cbr\u003e\nThis implementation is typically over 50 times faster than MATLAB's interp2.\n\n## How to use\nCall it as `Vq = interp2gpu(V, Xq, Yq, \"spline\")`.  \nFor an explanation of inputs, see  [https://mathworks.com/help/matlab/ref/interp2.html](https://mathworks.com/help/matlab/ref/interp2.html) from Mathworks.  \nAn example of using interp2gpu is given in [example.m](example.m).\n\n## Installation\nYou can download the code with [this link](https://github.com/sebftw/interp2gpu/archive/refs/heads/main.zip).  \nThen run `addpath(CODEPATH)`, where CODEPATH is the path of the directory where interp2gpu is located.  \nYou can now use interp2gpu!\n\n## Features\n:heavy_check_mark: Multiple images can be processed with one call to interp2gpu.  \n:heavy_check_mark: The method \"spline_approx\" performs fast approximated spline interpolation.  \n:x: Does not currently support double-precision inputs.  \n:x: Does not currently support arbitrary input pixel grids.  \n\nYou can add support for double-precision inputs and non-uniform pixel grids relatively easily - feel free to contribute.\n\n## How to Cite\nIf you are using this software in your research, please cite our paper:\nS. K. Præsius and J. A. Jensen, “Fast Spline Interpolation using GPU Acceleration,” in Proc. IEEE Ultrason. Symp., pp. 1–5, 2024, doi: [10.1109/UFFC-JS60046.2024.10793976](https://doi.org/10.1109/UFFC-JS60046.2024.10793976).\n\n## Files\n- `example.m` is an example that shows how to use interp2gpu.\n- `interp2gpu.m` is the main function.\n- `gpuThomas2D.m` is used to compute the image derivatives required to evaluate the spline.\n- `get_kernel.m` is used to cache CUDA kernels, so they do not have to be loaded every time.\n- `Spline_paper.pdf` is a paper containing the theory of the method and its application in ultrasound imaging.\n- `kernels/getInterpolation2D.cu` contains the CUDA C++ source code used to evaluate the spline.\n- `kernels/compile_kernels.m` is used to compile the CUDA code.\n- `kernels/getInterpolation2D.ptx` is the compiled CUDA kernel.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebftw%2Finterp2gpu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebftw%2Finterp2gpu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebftw%2Finterp2gpu/lists"}