57 research outputs found

    Symbolic crosschecking of data-parallel floating-point code

    Get PDF

    Conservation genetics of traditional and commercial pig breeds, and evaluation of their crossbreeding potential for productivity improvement

    Get PDF
    The Food and Agriculture Organization have emphasised the importance of farm animal genetic diversity for the assurance of future global food security. Modern pig production has concentrated on a small number of commercialised breeds. This has significantly contributed to genetic erosion and loss of native breeds, deemed productively inefficient. It has been recommended to conserve the unique traits of traditional breeds as genetic insurance against future challenges. In order to ascertain the commercial viability of traditional breeds, genetic and productivity analyses were completed, using the Large White (LW) and Landrace (LR) as the commercial comparison. Genetic diversity was assessed using a D-loop fragment of mitochondrial DNA for comparison between three purebred traditional breeds: Gloucester Old Spot (GOS), British Lop (BL) and Welsh (W), and commercial LW x LR. The traditional breeds greatly differed from the commercial hybrid, and possessed high variability at this genetic region. The BL and W demonstrated the greatest potential for crossbreeding to increase the diversity of commercial populations. The crossing of LW x LR dams with GOS, BL and W terminal sires produced traditional crossbreds for comparison with LW sired crossbreds. Nuclear DNA diversity was assessed using a region of the iodothyronine deiodinase type 3 (DIO3) gene. This demonstrated that crossbreeding could improve future productivity, by utilising traditional variation to maximise heterozygosity in the progeny. The productivity assessment established that the traditional and commercial crossbreds performed comparably for most of the growth variables measured, however there were highly significant differences for birth weight, weaning weight, back fat and production length. The traditional crossbreds have shown potential for future application, with the W most suited for commercial production, due to the equivalence with the LW. To conclude, the crossbreeding of traditional and commercial pig breeds is a viable genetic management strategy to conserve and genetically improve both groups

    Symbolic Crosschecking of Data-Parallel Floating Point Code

    No full text
    In this thesis we present a symbolic execution-based technique for cross-checking programs accelerated using SIMD or OpenCL against an unaccelerated version, as well as a technique for detecting data races in OpenCL programs. Our techniques are implemented in KLEE-CL, a symbolic execution engine based on KLEE that supports symbolic reasoning on the equivalence between expressions involving both integer and floating-point operations. While the current generation of constraint solvers provide good support for integer arithmetic, there is little support available for floating-point arithmetic, due to the complexity inherent in such computations. The key insight behind our approach is that floating-point values are only reliably equal if they are essentially built by the same operations. This allows us to use an algorithm based on symbolic expression matching augmented with canonicalisation rules to determine path equivalence. Under symbolic execution, we have to verify equivalence along every feasible control-flow path. We reduce the branching factor of this process by aggressively merging conditionals, if-converting branches into select operations via an aggressive phi-node folding transformation. To support the Intel Streaming SIMD Extension (SSE) instruction set, we lower SSE instructions to equivalent generic vector operations, which in turn are interpreted in terms of primitive integer and floating-point operations. To support OpenCL programs, we symbolically model the OpenCL environment using an OpenCL runtime library targeted to symbolic execution. We detect data races by keeping track of all memory accesses using a memory log, and reporting a race whenever we detect that two accesses conflict. By representing the memory log symbolically, we are also able to detect races associated with symbolically indexed accesses of memory objects. We used KLEE-CL to find a number of issues in a variety of open source projects that use SSE and OpenCL, including mismatches between implementations, memory errors, race conditions and compiler bugs

    Interleaving and lock-step semantics for analysis and verification of GPU kernels

    No full text
    Graphics Processing Units (GPUs) from leading vendors employ predicated (or guarded) execution to eliminate branching and increase performance. Similarly, a recent GPU verification technique uses predication to reduce verification of GPU kernels (the massively parallel programs that run on GPUs) to verification of a sequential program. Prior work on the formal semantics of lock-step predicated execution for kernels focused on structured programs, where control is organised using if- and while-statements. We provide lock-step execution semantics for GPU kernels that are represented by arbitrary reducible control flow graphs. We present a traditional interleaving semantics and a novel lock-step semantics based on predication, and show that for terminating kernels either both semantics compute identical results or both behave erroneously. The method allows reducing GPU kernel verification to the verification of a sequential, lock-step program to be applied to GPU kernels with arbitrary reducible control flow. We have implemented the method in the GPUVerify tool, and present an evaluation using a set of 163 open source and commercial GPU kernels. Among these kernels, 42 exhibit unstructured control flow which our novel lock-step predication technique can handle fully automatically. This generality comes at a modest price: verification across our benchmark set was on average 2.25 times slower than using an existing approach that specifically targets structured kernels

    Engineering a static verification tool for GPU kernels

    Get PDF
    We report on practical experiences over the last 2.5 years related to the engineering of GPUVerify, a static verification tool for OpenCL and CUDA GPU kernels, plotting the progress of GPUVerify from a prototype to a fully functional and relatively efficient analysis tool. Our hope is that this experience report will serve the verification community by helping to inform future tooling efforts. © 2014 Springer International Publishing

    GPUVerify: A Verifier for GPU Kernels

    Get PDF
    We present a technique for verifying race- and divergence-freedom of GPU kernels that are written in mainstream ker-nel programming languages such as OpenCL and CUDA. Our approach is founded on a novel formal operational se-mantics for GPU programming termed synchronous, delayed visibility (SDV) semantics. The SDV semantics provides a precise definition of barrier divergence in GPU kernels and allows kernel verification to be reduced to analysis of a sequential program, thereby completely avoiding the need to reason about thread interleavings, and allowing existing modular techniques for program verification to be leveraged. We describe an efficient encoding for data race detection and propose a method for automatically inferring loop invari-ants required for verification. We have implemented these techniques as a practical verification tool, GPUVerify, which can be applied directly to OpenCL and CUDA source code. We evaluate GPUVerify with respect to a set of 163 kernels drawn from public and commercial sources. Our evaluation demonstrates that GPUVerify is capable of efficient, auto-matic verification of a large number of real-world kernels

    Resilient entangling gates for trapped ions

    Get PDF
    Constructing a large-scale ion trap quantum processor will require entangling gate operations that are robust in the presence of noise and experimental imperfection. We experimentally demonstrate how a new type of Mølmer-Sørensen gate protects against infidelity caused by heating of the motional mode used during the gate. Furthermore, we show how the same technique simultaneously provides significant protection against slow fluctuations and mis-sets in the secular frequency. Since this parameter sensitivity is worsened in cases where the ions are not ground-state cooled, our method provides a path towards relaxing ion cooling requirements in practical realizations of quantum computing and simulation

    CLTestCheck: Measuring Test Effectiveness for GPU Kernels

    Get PDF
    • …
    corecore