Tatra T87, House, Worm) Appendix

Total Page:16

File Type:pdf, Size:1020Kb

Tatra T87, House, Worm) Appendix Presentation parts Part I. Acceleration of Blender Cycles Render Engine using OpenMP and MPI Part II. Acceleration of Blender Cycles Render Engine using Intel® Xeon Phi™ . GPU rendering in original code . Rendering using Intel® Xeon Phi™ . Rendering using Intel® Xeon Phi™ and MPI . Benchmark (Tatra T87, House, Worm) Appendix . Building and running CyclesPhi 2 Part II. Acceleration of Blender Cycles Render Engine using Intel® Xeon Phi™ VŠB – Technical University of Ostrava, IT4Innovations, Czech Republic Milan Jaroš, Lubomír Říha, Tomáš Karásek, Renáta Plouharová Presentation parts Part I. Acceleration of Blender Cycles Render Engine using OpenMP and MPI Part II. Acceleration of Blender Cycles Render Engine using Intel® Xeon Phi™ . GPU rendering in original code 4 POSIX Threads in Blender Blender Scene Draw Blender Thread Sync Tag Update Scene Session Thread Device Update Device Scene Display Device Threads Buffer https://wiki.blender.org/index.php/Dev:Source/Render/Cycles/Threads 5 CUDADevice CUDADevice GPU rendering KernelData KernelTextures buffer, rng_state cam, background, integrator bvh, objects, triangles, lights, (emission, bounces, sampler), particles, sobol_directions, in original code ... texture_images, ... mem_alloc tex_alloc mem_free const_copy_to tex_free mem_copy_from mem_copy_to ONE NODE GPU (CUDA support) CUDADevice decompose task TILES to subtasks STACK thread_run 6 CUDADevice CUDADevice GPU rendering KernelData KernelTextures buffer, rng_state cam, background, integrator bvh, objects, triangles, lights, (emission, bounces, sampler), particles, sobol_directions, in original code ... texture_images, ... mem_alloc tex_alloc mem_free const_copy_to tex_free mem_copy_from mem_copy_to ONE NODE GPU (CUDA support) CUDADevice decompose task TILES to subtasks STACK thread_run 7 GPU rendering in original code //blender/intern/cycles/device/device_cuda.cpp void mem_copy_to(const char *name, device_memory& mem) { void mem_alloc(const char *name, device_memory& mem, cuda_push_context(); MemoryType /*type*/) { cuda_assert(cuMemcpyHtoD(cuda_device_ptr(mem.device_pointer), cuda_push_context(); (void*)mem.data_pointer, mem.memory_size())); CUdeviceptr device_pointer; cuda_pop_context(); //... } cuda_assert(cuMemAlloc(&device_pointer, size)); //... void mem_copy_from(const char *name, device_memory& mem, cuda_pop_context(); int y, int w, int h, int elem) { } //... cuda_push_context(); void mem_free(const char *name, device_memory& mem) { cuda_assert(cuMemcpyDtoH((uchar*)mem.data_pointer + offset, cuda_push_context(); (CUdeviceptr)(mem.device_pointer + offset), size)); cuda_assert(cuMemFree(cuda_device_ptr(mem.device_pointer))); //... //... cuda_pop_context(); } } void tex_alloc(const char *name, void const_copy_to(const char *name, void *host, size_t size) { device_memory& mem, //... InterpolationType interpolation, cuda_push_context(); ExtensionType extension); cuda_assert(cuModuleGetGlobal(&mem, &bytes, cuModule, name)); cuda_assert(cuMemcpyHtoD(mem, host, size)); void tex_free(const char *name, device_memory& mem); cuda_pop_context(); } 8 CUDADevice CUDADevice GPU rendering KernelData KernelTextures buffer, rng_state cam, background, integrator bvh, objects, triangles, lights, (emission, bounces, sampler), particles, sobol_directions, in original code ... texture_images, ... mem_alloc tex_alloc mem_free const_copy_to tex_free mem_copy_from mem_copy_to ONE NODE GPU (CUDA support) CUDADevice decompose task TILES to subtasks STACK thread_run 9 GPU rendering in original code The decomposition of synthesized image with resolution x(r) x y(r) to tiles with size x(t) x y(t) by original implementation. The one tile is computed by one GPU device for x(t) x y(t) pixels and one GPU core computes one pixel. decompose to tiles ONE NODE GPU CUDA 1x core r t y y TILES STACK t y 1x tile 1x pixel xt*yt pixels x r xt xt 10 CUDADevice CUDADevice GPU rendering KernelData KernelTextures buffer, rng_state cam, background, integrator bvh, objects, triangles, lights, (emission, bounces, sampler), particles, sobol_directions, in original code ... texture_images, ... mem_alloc tex_alloc mem_free const_copy_to tex_free mem_copy_from mem_copy_to ONE NODE GPU (CUDA support) CUDADevice decompose task TILES to subtasks STACK thread_run 11 GPU rendering in original code //blender/intern/cycles/device/device_cuda.cpp //blender/intern/cycles/kernel/kernels/cuda/kernel.cu void path_trace(RenderTile& rtile, int sample, bool branched) { extern "C" __global__ void //... CUDA_LAUNCH_BOUNDS(CUDA_THREADS_BLOCK_WIDTH, cuda_assert(cuModuleGetFunction(&cuPathTrace, cuModule, CUDA_KERNEL_MAX_REGISTERS) "kernel_cuda_path_trace")); kernel_cuda_path_trace(float *buffer, uint *rng_state, int sample, //... int sx, int sy, int sw, int sh, int offset, int stride) cuda_assert(cuFuncGetAttribute(&threads_per_block, { CU_FUNC_ATTRIBUTE_MAX_THREADS_PER_BLOCK, int x = sx + blockDim.x*blockIdx.x + threadIdx.x; cuPathTrace)); int y = sy + blockDim.y*blockIdx.y + threadIdx.y; //... int xthreads = (int)sqrt((float)threads_per_block); if (x < sx + sw && y < sy + sh) int ythreads = (int)sqrt((float)threads_per_block); kernel_path_trace(NULL, buffer, rng_state, sample, x, y, offset, stride); int xblocks = (rtile.w + xthreads - 1)/xthreads; } int yblocks = (rtile.h + ythreads - 1)/ythreads; cuda_assert(cuFuncSetCacheConfig(cuPathTrace, CU_FUNC_CACHE_PREFER_L1)); cuda_assert(cuLaunchKernel(cuPathTrace, xblocks , yblocks, 1, // blocks xthreads, ythreads, 1, // threads 0, 0, args, 0)); cuda_assert(cuCtxSynchronize()); cuda_pop_context(); } 12 Presentation parts Part I. Acceleration of Blender Cycles Render Engine using OpenMP and MPI Part II. Acceleration of Blender Cycles Render Engine using Intel® Xeon Phi™ . Rendering using Intel® Xeon Phi™ 13 Source Code Native mode, Offload mode and Symmetric mode Compilers, Libraries, and Parallel Models main() main() main() main() Xeon Xeon Xeon Xeon Phi Xeon main() Xeon Xeon Xeon Xeon Xeon Phi Xeon Phi Results Results Results Results Many-Core Only Multicore Hosted Symmetric Multicore Only Native with Many-Core Offload http://www.cism.ucl.ac.be 14 Native mode, Offload mode and Symmetric mode Symmetric mode Offload mode Blender Blender CPU CPU MIC0 MIC1 OpenMP+Offload MPI Native mode OpenMP OpenMP Blender MIC0 MIC1 Blender Blender client client MIC0 15 Offload pragma/directives in C++ C/C++ Syntax Semantics Offload pragma #pragma offload <clauses> Execute next statement on <statement> MIC (which could be an OpenMP parallel construct) __declspec ( target (mic)) <func/var> __attribute__ (( target (mic)) <func/var> Function and variable #pragma offload_attribute (target (mic)) Compile function and <func/var> variable for CPU and MIC https://software.intel.com/en-us/articles/ixptc-2013-presentations 16 Offload pragma/directives in C++ Clauses Syntax Semantics Target specification target ( mic [: <expr> ] ) Where to run construct If specifier if ( condition ) Offload statement if condition is TRUE Inputs in (var-list modifiers) Copy CPU to target Outputs out (var-list modifiers) Copy target to CPU Inputs & outputs inout (var-list modifiers) Copy both ways Non-copied data nocopy (var-list modifiers) Data is local to target Modifiers Specify pointer length length (element-count-expr) Copy that many pointer elements Control pointer memory alloc_if ( condition ) Allocate/free new block of allocation free_if ( condition ) memory for pointer if condition is TRUE https://software.intel.com/en-us/articles/ixptc-2013-presentations 17 OMPDevice OMPDevice Parallelization KernelData KernelTextures buffer, rng_state cam, background, integrator bvh, objects, triangles, lights, (emission, bounces, sampler), particles, sobol_directions, for MIC using ... texture_images, ... mem_alloc tex_alloc mem_free OpenMP and const_copy_to tex_free mem_copy_from Offload mem_copy_to ONE NODE OpenMP + Offload OpenMP OMPDevice decompose task TILES to subtasks STACK thread_run 18 OMPDevice OMPDevice Parallelization KernelData KernelTextures buffer, rng_state cam, background, integrator bvh, objects, triangles, lights, (emission, bounces, sampler), particles, sobol_directions, for MIC using ... texture_images, ... mem_alloc tex_alloc mem_free OpenMP and const_copy_to tex_free mem_copy_from Offload mem_copy_to ONE NODE OpenMP + Offload OpenMP OMPDevice decompose task TILES to subtasks STACK thread_run 19 Parallelization for MIC using OpenMP and Offload //blender/intern/cycles/kernel/kernels/mic/kernel_mic.cpp #define ALLOC alloc_if(1) free_if(0) void mic_mem_alloc(int numDevice, char *mem, size_t memSize) { #define FREE alloc_if(0) free_if(1) #pragma offload target(mic:numDevice) in(mem:length(memSize) ALLOC) #define REUSE alloc_if(0) free_if(0) } #define ONE_USE void mic_mem_copy_to(int numDevice, char *mem, size_t memSize, char* device_ptr mic_alloc_kg(int numDevice) { signal_value) { device_ptr kg_bin; if (signal_value == NULL) { #pragma offload target(mic:numDevice) out(kg_bin) #pragma offload target(mic:numDevice) in(mem:length(memSize) REUSE) { } else { KernelGlobals *kg = new KernelGlobals(); #pragma offload_transfer target(mic:numDevice) in(mem:length(memSize) REUSE) kg_bin = (device_ptr) kg; signal(signal_value) } } return (device_ptr) kg_bin; } } void mic_mem_copy_from(int numDevice, char *mem, size_t offset, size_t memSize, void mic_free_kg(int numDevice, device_ptr kg_bin) { char* signal_value) { #pragma offload target(mic:numDevice) in(kg_bin) if (signal_value == NULL) { { KernelGlobals *kg = (KernelGlobals *) kg_bin; #pragma offload target(mic:numDevice) out(mem[offset:memSize]:
Recommended publications
  • Openimageio 1.7 Programmer Documentation (In Progress)
    OpenImageIO 1.7 Programmer Documentation (in progress) Editor: Larry Gritz [email protected] Date: 31 Mar 2016 ii The OpenImageIO source code and documentation are: Copyright (c) 2008-2016 Larry Gritz, et al. All Rights Reserved. The code that implements OpenImageIO is licensed under the BSD 3-clause (also some- times known as “new BSD” or “modified BSD”) license: Redistribution and use in source and binary forms, with or without modification, are per- mitted provided that the following conditions are met: • Redistributions of source code must retain the above copyright notice, this list of condi- tions and the following disclaimer. • Redistributions in binary form must reproduce the above copyright notice, this list of con- ditions and the following disclaimer in the documentation and/or other materials provided with the distribution. • Neither the name of the software’s owners nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIB- UTORS ”AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FIT- NESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUD- ING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABIL- ITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    [Show full text]
  • Openimageio Release 2.4.0
    OpenImageIO Release 2.4.0 Larry Gritz Sep 30, 2021 CONTENTS 1 Introduction 3 2 Image I/O API Helper Classes9 3 ImageOutput: Writing Images 41 4 ImageInput: Reading Images 69 5 Writing ImageIO Plugins 93 6 Bundled ImageIO Plugins 119 7 Cached Images 145 8 Texture Access: TextureSystem 159 9 ImageBuf: Image Buffers 183 10 ImageBufAlgo: Image Processing 201 11 Python Bindings 257 12 oiiotool: the OIIO Swiss Army Knife 305 13 Getting Image information With iinfo 365 14 Converting Image Formats With iconvert 369 15 Searching Image Metadata With igrep 375 16 Comparing Images With idiff 377 17 Making Tiled MIP-Map Texture Files With maketx or oiiotool 381 18 Metadata conventions 389 19 Glossary 403 Index 405 i ii OpenImageIO, Release 2.4.0 The code that implements OpenImageIO is licensed under the BSD 3-clause (also sometimes known as “new BSD” or “modified BSD”) license (https://github.com/OpenImageIO/oiio/blob/master/LICENSE.md): Copyright (c) 2008-present by Contributors to the OpenImageIO project. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
    [Show full text]
  • Opencolorio Documentation
    OpenColorIO Documentation Contributors to the OpenColorIO Project Sep 30, 2021 CONTENTS 1 About the Documentation 3 1.1 Accessing Other Versions........................................3 2 Community 5 2.1 Mailing Lists...............................................5 2.2 Slack...................................................5 3 Search 7 3.1 Quick Start................................................7 3.1.1 Quick Start for Artists......................................7 3.1.2 Quick Start for Config Authors.................................7 3.1.3 Quick Start for Developers...................................8 3.1.4 Quick Start for Contributors..................................8 3.1.5 Downloads...........................................8 3.1.6 Installation...........................................9 3.2 Concepts................................................. 17 3.2.1 Overview............................................ 17 3.2.2 Introduction........................................... 17 3.2.3 Internal Architecture Overview................................. 19 3.2.4 Glossary............................................. 24 3.2.5 Publications........................................... 24 3.3 Tutorials................................................. 24 3.3.1 Baking LUT’s.......................................... 24 3.3.2 Contributing........................................... 31 3.4 Guides.................................................. 31 3.4.1 Using OCIO........................................... 31 3.4.2 Environment Variables....................................
    [Show full text]
  • HIERO USER GUIDE VERSION 1.0V1 Hiero™ User Guide
    HIERO USER GUIDE VERSION 1.0v1 Hiero™ User Guide. Copyright © 2012 The Foundry Visionmongers Ltd. All Rights Reserved. Use of this User Guide and the Hiero software is subject to an End User Licensing Agreement (the “EULA”), the terms of which are incorporated herein by reference. This User Guide and the Hiero software may be used or copied only in accordance with the terms of the EULA. This User Guide, the Hiero software and all intellectual property rights relating thereto are and shall remain the sole property of The Foundry Visionmongers Ltd. (“The Foundry”) and/or The Foundry's licencors. The EULA is available in the appendices. The Foundry assumes no responsibility or liability for any errors or inaccuracies that may appear in this User Guide and this User Guide is subject to change without notice. The content of this User Guide is furnished for informational use only. Except as permitted by the EULA, no part of this User Guide may be reproduced, stored in a retrieval system or transmitted, in any form or by any means, electronic, mechanical, recording or otherwise, without the prior written permission of The Foundry. To the extent that the EULA authorises the making of copies of this User Guide, such copies shall be reproduced with all copyright, trademark and other proprietary rights notices included herein. The EULA expressly prohibits any action that could adversely affect the property rights of The Foundry and/or The Foundry's licencors, including, but not limited to, the removal of the following (or any other copyright, trademark or other proprietary rights notice included herein): Hiero™ shot management and conform software © 2012 The Foundry Visionmongers Ltd.
    [Show full text]
  • 4.X Is the System Default
    EasyBuild Documentation Release 20190816.0 Ghent University Fri, 16 Aug 2019 18:07:17 Contents 1 Introductory topics 3 1.1 What is EasyBuild?...........................................3 1.2 Concepts and terminology........................................4 1.2.1 EasyBuild framework......................................4 1.2.2 Easyblocks...........................................5 1.2.3 Toolchains............................................5 1.2.4 Easyconfig files.........................................6 1.2.5 Extensions............................................6 1.3 Typical workflow example: building and installing WRF........................7 1.3.1 Searching for available easyconfigs files............................7 1.3.2 Getting an overview of planned installations..........................8 1.3.3 Installing a software stack...................................8 2 Getting started 11 2.1 Installing EasyBuild........................................... 11 2.1.1 Requirements.......................................... 12 2.1.2 Bootstrapping EasyBuild.................................... 12 2.1.3 Advanced bootstrapping options................................ 16 2.1.4 Updating an existing EasyBuild installation.......................... 17 2.1.5 Dependencies.......................................... 18 2.1.6 Sources............................................. 20 2.1.7 In case of installation issues. .................................. 21 2.2 Configuring EasyBuild.......................................... 21 2.2.1 Supported configuration types................................
    [Show full text]
  • Technical Notes All Changes in Fedora 18
    Fedora 18 Technical Notes All changes in Fedora 18 Edited by The Fedora Docs Team Copyright © 2012 Red Hat, Inc. and others. The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. The original authors of this document, and Red Hat, designate the Fedora Project as the "Attribution Party" for purposes of CC-BY-SA. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version. Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law. Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries. For guidelines on the permitted uses of the Fedora trademarks, refer to https:// fedoraproject.org/wiki/Legal:Trademark_guidelines. Linux® is the registered trademark of Linus Torvalds in the United States and other countries. Java® is a registered trademark of Oracle and/or its affiliates. XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries. MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries. All other trademarks are the property of their respective owners.
    [Show full text]
  • Openimageio 0.7 Programmer Documentation (In Progress)
    OpenImageIO 0.7 Programmer Documentation (in progress) Editor: Larry Gritz [email protected] Date: 20 July, 2009 (with corrections, 26 July, 2009) ii I kinda like “Oy-e-oh” with a bit of a groaning Yiddish accent, as in “OIIO, did you really write yet another file I/O library?” Dan Wexler OpenImageIO Programmer’s Documentation Contents 1 Introduction 1 1.1 Overview . 1 1.2 Simplifying Assumptions . 2 I The ImageIO Library 5 2 Image I/O API 7 2.1 Data Type Descriptions: TypeDesc ........................ 7 2.2 Image Specification: ImageSpec ......................... 9 3 ImageOutput: Writing Images 15 3.1 Image Output Made Simple . 15 3.2 Advanced Image Output . 16 3.3 ImageOutput Class Reference . 31 4 Image I/O: Reading Images 35 4.1 Image Input Made Simple . 35 4.2 Advanced Image Input . 36 4.3 ImageInput Class Reference . 45 5 Writing ImageIO Plugins 49 5.1 Plugin Introduction . 49 5.2 Image Readers . 49 5.3 Image Writers . 56 5.4 Building ImageIO Plugins . 65 6 Bundled ImageIO Plugins 67 6.1 TIFF . 67 6.2 JPEG . 67 6.3 OpenEXR . 67 6.4 HDR/RGBE . 67 6.5 PNG . 67 6.6 Zfile . 67 6.7 Targa ....................................... 67 iii iv CONTENTS 6.8 ICO . 67 6.9 BMP . 67 7 Cached Images 69 7.1 Image Cache Introduction and Theory of Operation . 69 7.2 ImageCache API . 71 8 Texture Access: TextureSystem 79 8.1 Texture System Introduction and Theory of Operation . 79 8.2 Helper Classes . 79 8.3 TextureSystem API . 83 9 Image Buffer 97 II Image Utilities 99 10 The iv Image Viewer 101 11 Getting Image information With iinfo 103 11.1 Using iinfo ...................................
    [Show full text]
  • Prism Pipeline Documentation Release 1.2.0
    Prism Pipeline Documentation Release 1.2.0 Richard Frangenberg Oct 29, 2020 Contents: 1 Overview1 1.1 Introduction....................................1 1.2 Changelog....................................1 1.3 Supported Software...............................1 2 Getting Started3 2.1 Installation....................................3 2.2 Create a project.................................3 2.3 Create scenes..................................5 2.4 Export objects..................................6 2.5 Import objects..................................9 2.6 Create a playblast of a scene.......................... 10 2.7 Render your scene............................... 12 2.8 Create a video from renderings........................ 13 3 Feature Reference 15 3.1 Installation.................................... 15 3.1.1 Installing on Windows......................... 15 3.1.2 Installing on Linux........................... 17 3.1.3 Installing on Mac OSX......................... 18 3.1.4 Installation dialog............................ 19 3.1.5 Uninstall................................. 19 3.1.6 Updating Prism............................. 20 3.2 Integrations.................................... 21 3.2.1 3dsMax................................. 21 3.2.2 Blender................................. 21 3.2.3 Fusion.................................. 22 3.2.4 Houdini................................. 23 3.2.5 Maya................................... 24 i 3.2.6 Natron.................................. 24 3.2.7 Nuke................................... 25 3.2.8 Photoshop...............................
    [Show full text]
  • Master Branch of Your Git Working Copies of the Different Easybuild Repositories
    EasyBuild Documentation Release 20201210.0 Ghent University Wed, 06 Jan 2021 10:34:03 Contents 1 What is EasyBuild? 3 2 Concepts and terminology 5 2.1 EasyBuild framework..........................................5 2.2 Easyblocks................................................6 2.3 Toolchains................................................7 2.3.1 system toolchain.......................................7 2.3.2 dummy toolchain (DEPRECATED) ..............................7 2.3.3 Common toolchains.......................................7 2.4 Easyconfig files..............................................7 2.5 Extensions................................................8 3 Typical workflow example: building and installing WRF9 3.1 Searching for available easyconfigs files.................................9 3.2 Getting an overview of planned installations.............................. 10 3.3 Installing a software stack........................................ 11 4 Getting started 13 4.1 Installing EasyBuild........................................... 13 4.1.1 Requirements.......................................... 14 4.1.2 Bootstrapping EasyBuild.................................... 14 4.1.3 Advanced bootstrapping options................................ 18 4.1.4 Updating an existing EasyBuild installation.......................... 20 4.1.5 Dependencies.......................................... 20 4.1.6 Sources............................................. 23 4.1.7 In case of installation issues. .................................. 23 4.2 Configuring EasyBuild.........................................
    [Show full text]
  • Kacey Coley Technical Director Tel: 803-292-2572 [email protected]
    Kacey Coley Technical Director www.kaceycoley.com Tel: 803-292-2572 [email protected] EDUCATION Graduate School: Digital Production Arts, MFA, Clemson University August 2011 - May 2014 Undergraduate School: Computer Engineering, BS, Clemson University August 2007 - August 2011 ACHIEVEMENT “Outstanding MFA Student in Digital Production Arts”, Clemson University April 2014 EXPERIENCE Technical Artist Intern, Electronic Arts, Orlando, Fl May 2013 - August 2013 Optimized a production tool using Maya and proprietary tools which automates the baking of football uniform textures for artists. Also participated in the creation of a texture workflow and created a Photoshop tool to au- tomate the export of textures at different resolutions (C#, Mel, Python, Shotgun, Maya, Photoshop, In-House Applications) “MeshPotato”: Volume Modeling Tool, Thesis Work August 2013 - May 2014 Created a C++ library which assists in the conversion of models into volumes to assist in the creation and ren- dering of volumetric effects in the DPA studio. The library makes use of OpenVDB and Python bindings are used to create tools based in the command line, Maya and Houdini. It is also capable of generating deep images for volumetric compositing. (OpenVDB, Alembic, C++, Python, Boost.Python, Maya Python API, Houdini API, SVN, Git) Animated Short “The Water is Always Bluer…”, DPA, Clemson, SC January 2012 -December 2013 Worked on an animated with four other colleagues, “The Water is Always Bluer...” which was accepted into three film festivals. Created models, shaders, lights, animation and various special effects. Also created pipe- line tools for the production to automate the process and created FX, lighting and compositing workflows.
    [Show full text]
  • DEPARTMENT of INFORMATICS Evaluation of Rendering Optimizations for Virtual Reality Applications in Vulkan
    DEPARTMENT OF INFORMATICS TECHNISCHE UNIVERSITÄT MÜNCHEN Master’s Thesis in Informatics: Games Engineering Evaluation of Rendering Optimizations for Virtual Reality Applications in Vulkan Paul Preißner DEPARTMENT OF INFORMATICS TECHNISCHE UNIVERSITÄT MÜNCHEN Master’s Thesis in Informatics: Games Engineering Evaluation of Rendering Optimizations for Virtual Reality Applications in Vulkan Evaluation von Renderoptimierungen für Virtual Reality Anwendungen in Vulkan Author: Paul Preißner Supervisor: Prof. Gudrun Klinker, Ph.D. Advisor: M.Sc. Sven Liedtke Submission Date: 15 February 2020 I confirm that this master’s thesis in informatics: games engineering is my own work and I have documented all sources and material used. Garching bei München, 15 February 2020 Paul Preißner Acknowledgments My gratitude is expressed towards TUM and its teaching staff for providing an invaluable learning and working environment, towards my fellow students for great memories and towards Mio Mio and Spezi for keeping me glycemic in trying times. Abstract Virtual reality (VR) and modern low-level graphics APIs, such as Vulkan, are hot topics in the field of high performance real-time graphics. Especially enterprise VR applications show the need for fast and highly optimized rendering of complex industrial scenes with very high object counts. However, solutions often need to be custom-tailored and the use of middleware is not always an option. Optimizing a Vulkan graphics renderer for high performance VR applications is a significant task. This thesis researches and presents a number of suitable optimization approaches. The goal is to integrate them into an existing renderer intended for enterprise usage, benchmark the respective performance impact in detail and evaluate those results.
    [Show full text]
  • Best Practice Guide Intel Xeon Phi V2.0
    Best Practice Guide Intel Xeon Phi v2.0 Emanouil Atanassov, IICT-BAS, Bulgaria Michaela Barth, KTH, Sweden Mikko Byckling, CSC, Finland Vali Codreanu, SURFsara, Netherlands Nevena Ilieva, NCSA, Bulgaria Tomas Karasek, IT4Innovations, Czech Republic Jorge Rodriguez, BSC, Spain Sami Saarinen, CSC, Finland Ole Widar Saastad, University of Oslo, Norway Michael Schliephake, KTH, Sweden Martin Stachon, IT4Innovations, Czech Republic Janko Strassburg, BSC, Spain Volker Weinberg (Editor), LRZ, Germany 31-01-2017 1 Best Practice Guide Intel Xeon Phi v2.0 Table of Contents 1. Introduction .............................................................................................................................. 5 2. Intel MIC architecture & system overview ..................................................................................... 6 2.1. The Intel MIC architecture ............................................................................................... 6 2.1.1. Intel Xeon Phi coprocessor architecture overview ....................................................... 6 2.1.2. The cache hierarchy .............................................................................................. 8 2.2. Network configuration & system access .............................................................................. 9 3. Programming Models ............................................................................................................... 15 4. Native compilation ..................................................................................................................
    [Show full text]