Many-Core Compiler Fuzzing

               论文来源Many-Core Compiler Fuzzing

      学习关键词:

     1)OpenCL 介绍 

            OpenCL C 是C语言的一个变种。 OpenCL是多核并行编程的工业标准。支持CPU 和GPU ,FPEG等

              OpenCL C编写的kernel 在程序运行时动态编译。可以实现与设备无关的代码,便于程序代码的移植。

       2)论文核心

           测试OpenCL C compiler的bug.

      3) 论文主要工作

             1. EMI testing ( equivalence modulo inputs)

             2. Random different testing .CLSmith

             3. Injection of dead-by-construction code to enable EMI testing in the context of OpenCL

             4. Testing campaign (…process .etc)  不是核心

   4)其他关键词

1.OpenCL configuration denoted by (OpenCL-capable device, OpenCL device driver) pair.

(note: the OpenCL  C compiler for a given device is embeded in the driver software for the device)

            2.Many-Core random differential testing

                           CSmith .

                          CLSmith  six mode: BASIC . VECTOR . BARRIER. ATOMIC_SECTION. ATOMIC_REDUCTION. ALL

           3.Many-core EMI testing

                 fuzzing over statements in a program that are determined ,via code-coveraged analysis,to be dynamically unreachable for a given input.

                dynamically-dead code

         4. Experimental Method

EMI testing using standard OpenCL benchmarks

Intensive CLsmith-based testing

Intensive EMI testing with random programs:

            dynamically-dead code . find compiler bugs. effectiveness  of the EMI testing with random differential testing in terms of bug-finding ability;

Test case reducing and ranking

      A reducer for OpenCL would require a concurrency-aware  static analysis to avoid introducing data races.

     The problem of ranking test cases in an order that promotes diversity has also been investigated ;one successful ranking metric – code coverage during compilation – may be difficult to apply to proprietary OpenCL compilers that are invoked at runtime.

posted @ 2016-07-24 22:00  lylvye  阅读(387)  评论(0编辑  收藏  举报