Previous | Next --- Slide 58 of 60
Back to Lecture Thumbnails
gohan2021

DSL in this example seems to express the essential parts of what is required for the k-means clustering algorithm. Other components such as optimization details for running this algorithm on a cluster, GPU, or FPGA hardware are not included in the DSL syntax and semantics. I think this is the productivity aspect of DSL.

This approach seems to offload most of the optimization opportunities of running k-means clustering algorithm to DSL compilers. But would DSL compiler generates optimizations that are more efficient than the manually optimized k-means clustering code? Despite the performance benefit of DSL, I found it counterintuitive that compiler generated/optimized code can address efficient execution of DSL on a variety of hardware platforms (e.g. multi-core, cluster, FPGA, or GPU).

Please log in to leave a comment.