{"id":19943225,"url":"https://github.com/root-project/genvectorx","last_synced_at":"2025-03-01T13:25:03.982Z","repository":{"id":229159714,"uuid":"716632646","full_name":"root-project/genvectorx","owner":"root-project","description":"Accelerated GenVector library","archived":false,"fork":false,"pushed_at":"2025-02-28T10:16:56.000Z","size":685,"stargazers_count":0,"open_issues_count":4,"forks_count":4,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-02-28T17:11:49.763Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/root-project.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}},"created_at":"2023-11-09T14:44:10.000Z","updated_at":"2025-02-28T10:17:01.000Z","dependencies_parsed_at":"2024-03-22T11:28:41.266Z","dependency_job_id":"18c3e6af-5424-4f07-8d2f-b8515f101565","html_url":"https://github.com/root-project/genvectorx","commit_stats":null,"previous_names":["root-project/genvectorx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/root-project%2Fgenvectorx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/root-project%2Fgenvectorx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/root-project%2Fgenvectorx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/root-project%2Fgenvectorx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/root-project","download_url":"https://codeload.github.com/root-project/genvectorx/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241369740,"owners_count":19951799,"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":[],"created_at":"2024-11-13T00:15:52.856Z","updated_at":"2025-03-01T13:25:03.952Z","avatar_url":"https://github.com/root-project.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GenVectorX\n\nExtented GenVector library for multi-target execution. \n\n# cmake configuration\n\n## CUDA\nA basic CUDA configuration looks like this:\n```\ncmake .. -Dcuda=ON -DCMAKE_CUDA_HOST_COMPILER=/usr/bin/g++ -DCMAKE_CUDA_COMPILER=/path/to/cuda/bin/nvcc -DCMAKE_CUDA_ARCHITECTURES=xx -DCMAKE_CUDA_FLAGS=\"-arch=sm_XX\", where `XX` indicates the value of target CUDA capability.  \n```\n\n## SYCL\n\n### Memory management\nSYCL offers different memory management strategies. Here, we implement buffers+accessors or device pointers. Default memory management is handled with device pointers. In order to enable buffers+accessors, it is sufficient to set `-Dsycl_buffers=ON` in the cmake configuration. \n\n### AdaptiveCpp\nA basic SYCL configuration with AdaptiveCpp looks like this:\n```\ncmake .. -Dadaptivecpp=ON -DAdaptiveCpp_DIR=/path/to/AdaptiveCpp/install/lib/cmake/AdaptiveCpp -DACPP_TARGETS=\"\u003ctargets\u003e\"  \n```\n\nAdaptiveCpp targets specification defines which compilation flows AdaptiveCpp should enable, and which devices from a compilation flow AdaptiveCpp should target during compilation. A CUDA example lookd like this: `-DACPP_TARGETS=\"cuda:sm_86\"`. A HIP exaple looks like this: `-DACPP_TARGETS=\"hip:gfx90a\"`\n\n### oneAPI\nA basic SYCL configuration with oneAPI targeting CUDA backends looks like this:\n```\ncmake ..  -Doneapi=ON -Dsyclcuda=ON -DCMAKE_CUDA_ARCHITECTURES=XX -DCUDA_TOOLKIT_ROOT_DIR=/path/to/cuda/\n```\nwhere `XX` indicates the value of target CUDA capability. \n\nA basic SYCL configuration with oneAPI targeting HIP backends looks like this:\n```\ncmake ..  -Doneapi=ON -Dsyclamd=ON -DCMAKE_OFFLOAD_ARCHITECTURES=gfxXXX \n```\nwhere `XXX` is set accordingly to the AMD GPU model.\n\n## Testing\nIn order to compile test targets, set `-Dtesting=ON` in the cmake configuration. Set `-Dsingle_precision=ON` for compiling single precision test targets.\n\nIn order to enable time measurements (and their print to stdout), set `-Dtiming=ON` in the cmake configuration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froot-project%2Fgenvectorx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froot-project%2Fgenvectorx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froot-project%2Fgenvectorx/lists"}