{"id":13601602,"url":"https://github.com/roastduck/FreeTensor","last_synced_at":"2025-04-11T04:31:12.866Z","repository":{"id":36956741,"uuid":"322989201","full_name":"roastduck/FreeTensor","owner":"roastduck","description":"A language and compiler for irregular tensor programs.","archived":false,"fork":false,"pushed_at":"2024-05-05T04:30:45.000Z","size":3239254,"stargazers_count":132,"open_issues_count":5,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-08-02T18:41:00.663Z","etag":null,"topics":["ast","automatic-differentiation","code-generation","cuda","gpu","jit","openmp","tensor"],"latest_commit_sha":null,"homepage":"https://roastduck.github.io/FreeTensor/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/roastduck.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":"2020-12-20T03:59:32.000Z","updated_at":"2024-07-19T06:13:56.000Z","dependencies_parsed_at":"2024-01-18T12:27:42.003Z","dependency_job_id":"07d91d5f-7da2-44bc-af5e-e7ba56c4de5d","html_url":"https://github.com/roastduck/FreeTensor","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roastduck%2FFreeTensor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roastduck%2FFreeTensor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roastduck%2FFreeTensor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/roastduck%2FFreeTensor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/roastduck","download_url":"https://codeload.github.com/roastduck/FreeTensor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223458449,"owners_count":17148469,"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":["ast","automatic-differentiation","code-generation","cuda","gpu","jit","openmp","tensor"],"created_at":"2024-08-01T18:01:05.172Z","updated_at":"2024-11-07T04:31:12.603Z","avatar_url":"https://github.com/roastduck.png","language":"C++","readme":"\u003cimg src=\"docs/resource/logo-light.png\" alt=\"logo\" width=\"40%\"/\u003e\n\n[Get Started](https://roastduck.github.io/FreeTensor/guide/) | [Contributing](https://roastduck.github.io/FreeTensor/about/contrib/) | [Publication](https://roastduck.github.io/FreeTensor/about/pub/) | [License](https://github.com/roastduck/FreeTensor/blob/master/LICENSE)\n\nWrite and optimize high-performance native loop-based tensor programs in Python.\n\n## Features\n\n- Compiling loop-based tensor programs in Python to native code\n- Dynamic tensor shapes supported\n- Accept explicit transformations to programs for optimization, including parallelization, loop transformations and memory optimizations\n- Parallelization with OpenMP or CUDA\n- Reverse-mode Automatic Differentiation\n\n[Features by Example](https://roastduck.github.io/FreeTensor/#features-by-example)\n\n## Code Structure\n\n```\nffi/ ------------------------------------------------------- Interface between C++ and Python\ngrammar/ --------------------------------------------------- ANTLR grammar files used for serialization\ninclude/ --------------------------------------------------- C++ headers\n|- ref.h --------------------------------------------------- A smart pointer, based on std::shared_ptr, used all around the code\n|- ast.h --------------------------------------------------- Base class for AST (IR of FreeTensor) nodes\n|- stmt.h -------------------------------------------------- Statement nodes of an AST\n|- expr.h -------------------------------------------------- Expression nodes of an AST\n|- visitor.h ----------------------------------------------- Inherit Visitor in this file to examine an AST\n|- mutator.h ----------------------------------------------- Inherit Mutator in this file to modify an AST\n|- schedule.h ---------------------------------------------- All user specified transformations (schedules). Main interface. Details are in schedule/\n|- frontend/ ----------------------------------------------- C++ utilities used in Python API\n|- math/ --------------------------------------------------- Math utilities\n|- schedule/ ----------------------------------------------- All user specified transformations (schedules)\n|- pass/ --------------------------------------------------- All user agnostic transformations (used inside or after schedules)\n|- analyze/ ------------------------------------------------ Passes to extract information from an AST\n|- codegen/ ------------------------------------------------ Passes to generate a target code from an AST\n`- driver/ ------------------------------------------------- Infrastructure to run a generated target code\nsrc/ ------------------------------------------------------- C++ sources (the structure is almost same with include/)\npython/ ---------------------------------------------------- Python API\nruntime/ --------------------------------------------------- (Minimal) runtime code to be compiled into target exexutables\ntest/ ------------------------------------------------------ Unit tests\n```\n\n## Acknowledgement\n\nMany designs in FreeTensor are inspired by [TVM](https://github.com/apache/tvm/). Thank the TVM community for their contributions on tensor program compiling.\n","funding_links":[],"categories":["Open Source Projects","C++"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froastduck%2FFreeTensor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Froastduck%2FFreeTensor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Froastduck%2FFreeTensor/lists"}