{"id":17036499,"url":"https://github.com/emoon/sico","last_synced_at":"2025-04-12T13:20:24.938Z","repository":{"id":16965059,"uuid":"19727534","full_name":"emoon/sico","owner":"emoon","description":"SICO - SImple COmpute","archived":false,"fork":false,"pushed_at":"2015-06-21T12:07:48.000Z","size":1480,"stargazers_count":8,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-26T07:51:15.263Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Lua","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/emoon.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}},"created_at":"2014-05-13T05:54:24.000Z","updated_at":"2016-10-19T20:42:11.000Z","dependencies_parsed_at":"2022-08-04T15:30:19.055Z","dependency_job_id":null,"html_url":"https://github.com/emoon/sico","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/emoon%2Fsico","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoon%2Fsico/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoon%2Fsico/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emoon%2Fsico/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emoon","download_url":"https://codeload.github.com/emoon/sico/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248571836,"owners_count":21126522,"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-10-14T08:50:44.055Z","updated_at":"2025-04-12T13:20:24.915Z","avatar_url":"https://github.com/emoon.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"SICO\n=============\n\nSICO SI(mple) CO(mpute) is a library built on top of OpenCL in order to make it easier to use OpenCL. OpenCL in general has quite a bit of setup before one actually can start using it. The goal of SICO is to make this a bit easier and accessible (mainly from C/C++ to begin with) if you for example want to run an OpenCL kernel accress a 1D array you would write\n\n```\nscRunKernel1DArraySimple(...)\n```  \n  \nAnd here is a small example:\n\n```\nfloat inputData[] = { 1.0f, 2.0f, 3.0f, 4.0f };\nfloat inputData2[] = { 5.0f, 6.0f, 7.0f, 8.0f };\nfloat outputData[sizeof_array(inputData)];\n\nscRunKernel1DArraySimple(outputData, inputData, inputData2, \"mykernel.cl\", sizeof_array(inputData), sizeof(inputData);\n```\n\nAnd you are done. See https://github.com/emoon/sico/blob/master/examples/basic/add_floats/add_floats.c for a full example similar to this code.\n\nThis example of course trades some performance for simplicity but SICO can be used with more function calls and with more controls in order to improve performance.\n\nAnother example is a Mandelbrot fractal\n\n![fractal](https://cloud.githubusercontent.com/assets/350822/8268555/37961350-178a-11e5-8e2a-97a4f4901d69.jpg)\n\nAnd the code can be found here https://github.com/emoon/sico/blob/master/examples/advanced/mandelbrot_fractal/mandelbrot_fractal.c\n\nBuilding\n--------\n\nSICO uses the Tundra build system to build it's code. The binaries for Tundra is included for Windows and Mac but for Linux/*BSD/*NIX you need to build it yourself. The latest version can be obtained from here https://github.com/deplinenoise/tundra\n\n\nMac\n---\n\nFrom the root directory run scripts/mac_build_debug.sh\nTo generate a xcode solution run scripts/mac_gen_xcode_solution.sh\n\n\nWindows\n-------\n\nFrom the root directory run scripts\\win64_build_debug.cmd (Notice that msvc is expected to be in the path so you may have to run scripts\\vcvarsx86_amd64.bat first)\nTo run from Visual Studio a project can be generated using scripts\\win64_gen_vs_solution.cmd\n\n\nLinux/*BSD/*NIX\n---------------\n\nBuild the Tundra binary unless you have already.\nFrom the root directory run scripts/unix_gcc_build_debug.sh\n\n\nStatus\n------\n\nThe library is still in early development but feedback, ideas, etc are always welcome.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femoon%2Fsico","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Femoon%2Fsico","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Femoon%2Fsico/lists"}