Identifying Volatile Numeric Expressions in OpenCL Applications

semanticscholar(2016)

引用 0|浏览1
暂无评分
摘要
The results of numerical computations with floating-point numbers depend on the execution platform. One reason is that, even for similar floating point hardware, compilers have significant freedom in deciding how to evaluate a floatingpoint expression, as such evaluation is not standardized. We call an expression volatile if its value, for a given input, differs across platforms. Differences can become particularly large across (heterogeneous) parallel architectures. This may be surprising to a programmer who conflates the portability promised by programming standards such as OpenCL with reproducibility. In this paper we present experiments, conducted on a variety of platforms including CPUs and GPUs, that showcase the differences that can occur even for randomly selected inputs. We present a theoretical technique that determines tight bounds for volatile expressions, and present experiments that show that the bounds are indeed observed experimentally. The information provided by these bounds can be used to direct the programmer or compiler to focus on those portions of the program where reproducibility is important.
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要