Comments (6)
In theory TACO could be used to generate OpenCL kernels, but cannot currently. If you were interested in such a thing, looking at codegen_cuda.cpp
would be the place to start. It lowers a loop-based intermediate representation into CUDA code. If your goal is to target AMD GPUs, targeting HIP would be the easiest thing instead, as you could just replace all of the CUDA calls with the corresponding HIP calls.
from taco.
Thanks a lot for answering,
The goal that I have in mind is to use FPGAs for which I think that the code generation shall target OpenCL-C.
from taco.
Targeting different kinds of hardware will likely be more work than just adjusting the code generator. @weiya711 has been working on mapping TACO down to CGRA's and other accelerators and can comment more.
from taco.
Yes, I agree with you @rohany. However, initially being able to generate kernels in OpenCL-C will suffice. Will a sensible modification of codegen_cuda.cpp
be enough to accomplish this task?
from taco.
I've never written OpenCL targeting FPGA's before, so I cannot say for certain. The farther away this programming model moves from the threaded style of GPU programming the harder it will be to accomplish your task with just a change to the code generator. As Olivia has done in her work, for different programming models, and entirely different compilation workflow is needed to effectively target them.
from taco.
Please allow me to insist. It will be sufficient to modify codegen_cuda.cpp
in order to generate OpenCL-C code, The OpenCL-C standard is fully supported by OneAPI, which allows running a program on an FPGA in emulation mode for debugging and also allows for hardware compilation.
from taco.
Related Issues (20)
- Compilation error for TTM with CSF,CSC as input formats and CSF output HOT 4
- Serialization Support HOT 2
- Release of taco and availability of PyPi HOT 1
- Uncaught exception when fusing sparse dimensions HOT 4
- qcd.mul1 fails on Apple M1 HOT 2
- Convert raw pointer to 2nd order tensor HOT 1
- How to generate cuda kernel with python bindings? HOT 3
- Taco Grammar HOT 3
- Failed tests on format conversion HOT 3
- Add taco as 3rd party lib by CMake FetchContent_Declare HOT 1
- Is TACO capable of doing caculation with extra itervar? HOT 2
- Can every index be sparse? HOT 8
- pytaco.tensor_sum() gives a wrong answer
- Reshape HOT 1
- Complex number realization for the python interface HOT 1
- tests fail on macOS ppc/ppc64; on 10.6.8 x86_64 two tests fail HOT 15
- Memory leak with `pytaco`
- Failure due to CUDA errors when generating code for CPU?
- Online tool cannot connect to server
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from taco.