Uday - what are your views on Java's project babylon, which promises to support dynamic bytecode transformations to support new programming models/hardware environments?
@hari_krishna_n2 ай бұрын
Basically polyblock software performs compiler optimisation on different layer level operations. At the end will it generate library-free code which does not depend on any library? I wonder, we may see hardware vendor optimized libraries perform far better than library-free because hardware vendor optimized libraries can have SIMD and VLIW
@krishna_o152 ай бұрын
yeah and vendor optimized libraries have much more compiler flags for code optimizations
@polymagelabs2 ай бұрын
PolyBlocks has its own affine vectorization pass and the generated IR goes through LLVM and its optimizer, which also has its own vectorization passes. As such Polyblocks-generated code is also using SIMD. As for VLIW, it depends on the lower-level backend and whether a good LLVM backend exists for the VLIW hardware in question.
@polymagelabs2 ай бұрын
@@krishna_o15 A vendor-optimized library is pre-compiled code, i.e., they are binary objects. You can't compile them again with any new flags - for eg. CuDNN and cuBLAS are closed-source libraries that one directly installs via packages. In any case, compiling them with new flags will not realize the desired high-level optimizations emphasized here like fusion or a different strategy for tiling, etc. Compiler flags for low-level backends (optimization level, fast math) are also available when using PolyBlocks or similar compilers.