Why no DSP supported now?

1.There are only CPU,GPU,FPGA,specialized accelerators in the TVM introduction, and I wonder why no DSP is mentioned. Is it because TVM not suitable for DSP or just not support for now?
2.If I want to develop TVM on DSP, the are some specific problems:
(1)As LLVM IR is not supported by DSP, how to build DSP program from TVM IR?
(2)If I have to generate c code for DSP, how to deal with the SIMD data type and intrinsic function?
(3)Do I need to call all the SIMD function explicitlly?

3 Likes

Pls see: Offloading subgraphs to Hexagon and https://sampl.cs.washington.edu/tvmconf/slides/13-Krzysztof-Parzyszek.pdf

Support for Hexagon is coming. It’s not complete and it won’t be when we start upstreaming code, but the work is going on.

Regarding the rest of the questions (speaking from the point of view of Hexagon), Hexagon is one of the LLVM targets, so there is no issue with getting machine code from LLVM IR.
TVM allows you to substitute a TVM function with a custom function via tensorization. In such case you can just write your code in C and how to deal with SIMD types may depend on what C compiler you use. GCC and clang implement an attribute vector_size which can be used to define vector types. Support for your DSP’s intrinsics would also depend on the compiler, but you could probably use inline asm as the last resort.

Besides qualcomm,are there other DSP Vendors using TVM?

2 Likes