Industry advanced product development

I'm a staff engineer in Arm's Machine Learning Group working with David Mansell and Ian Bratt.

My current work involves analysing neural networks of future use-cases, identifying the most relevant operations and data patterns, capturing key insights with data science techniques to advance real-world performance of Arm's new software and hardware solutions.

Between 2016-2017 I worked with Paul Hughes in Arm's Architecture and Technology Group, as member of the Intelligent Machines Future System Design team, analysing and prototyping computer vision and ML subsystems for Advanced Driver-Assistance System and Computational Biology applications.

In 2012 I joined Arm's Processor Division working in system architecture and heterogeneous computing projects with Charles Garcia-Tobin and Jason Parker.

 

Academic research

I have a Ph. D. in Computer Science from University of Girona.

My research concerned with parallel efficient data structures for data visualization, geometric modeling, image-based representations and ray-tracing.

My work explored practical applications in a variety of areas in computer graphics, including real-time tree rendering, GPU efficient data-structures for geometry processing and texturing, and more recently dynamic parallel data-structures for ray-tracing and general-purpose GPU applications.

In 2011 I did a doctorate research internship in ALICE Project-Team (INRIA Nancy), collaborating with Dr. Sylvain Lefebrve.

In 2007 I started my Phd. in Computer Graphics joining the GGG research group, under the supervision of Dr. Gustavo Patow.

In 2005 I did a research internship collaborating with Prof. Laszlo Szirmay-Kalos at Technical University of Budapest Computer Graphics Research Group.

I was introduced in the Computer Graphics field advised by Prof. Mateu Sbert.

 

Selected industry projects

Exploring Deep Neural Networks Performance

Octocat Investigated deep neural networks for future use-cases, analysing them and breaking them down to distill the most relevant operations and data patterns, capturing key insights with data science techniques, to then drive new software and hardware solutions.

Keywords: Deep Neural Networks, Convolutions, General Matrix Multiply, Classification, Regression, LSTM, GAN, Clustering, Ensemble Learning, AutoML, Synthetic Data Generation, Performance Analysis

Advanced Driver-Assistance System and Computational Biology applications

Octocat Analysed and prototyped computer vision and ML subsystems for Advanced Driver-Assistance System and Computational Biology applications. Keywords: Modelling, Image Segmentation, Graph/Network Structures, Deep Neural Networks,,Virtualization, System Architecture, Memory management, Radar, SLAM, Stereo matching, Object Detection, Performance Analysis

Exploring new AArch64 CPU ISA extensions (SVE)

Octocat Investigated the impact of SVE (Scalable Vector Extension) instruction set in computer vision workloads, exploiting as much data-level parallelism as possible, with new instructions and vector lengths that scale from 128 to 2048 bits.

Keywords: Single Instruction, Multiple Data (SIMD) programming model, Vector Instructions, Parallel Programming, Modelling, CPU Architecture, Computer Vision, Keypoint and Features Detection, Assembly Language, Performance Analysis

Heterogeneous Computing and GPU Coherency

Octocat Modelled and prototyped low-level software, and analysed heterogeneous compute use-cases to incorporate Shared Virtual Memory (SVM) support between different type of processors (CPU & GPU), enabling them to share data, as simply as passing a pointer, which massively simplify the software, and delivers more power efficient and higher performance applications than other software managed cache synchronization mechanisms.

Keywords: Memory Models, Cache Memory, Interconnect, Heterogeneous Computing, System Architecture, Modelling, System Programming, Simulation Waveform, FPGA prototyping

Note: Other experimental projects can be provided upon request.

Honors and awards

2013 Best Ph.D. Thesis Award of the School of Computer Science

Parallel spatial data structures for interactive rendering, PhD Thesis, defended October 2012
Publication September 2013
University of Girona, 2013

2007 Best Computer Science Project Award 2006-2007

Generation and real-time visualization of 3D vegetation
University of Girona, Spain
Patronat Award 12th Edition winner
Supervised by Dr. Gustavo Patow and Prof. Mateu Sbert

Selected publications

Parallel spatial data structures for interactive rendering

Octocat PhD Thesis, October 2012 [pdf]

Best Ph.D. Thesis Award of the School of Computer Science 2013
University of Girona

The focus of our study is to design and provide time- and space-efficient parallel data structures and algorithms for real-time rendering and general-purpose GPU applications. A large number of operations in computer graphics are concerned with the process of collecting spatial data in a computer’s memory, in such a way that the information can be subsequently recovered as quickly as possible in order to be processed and generate a screen image in real-time. In this context, it is important to retain and organize the spatial data in such a way that fast retrieval and evaluation are possible. This thesis introduces three specific representations of spatial data with efficient parallel random-access for interactive rendering applications. Surface and volume representations of different topology and sparsity are handled with efficient encoding and rendering algorithms, where the key idea is to create a mapping of the input data to a virtual grid, which naturally suits for parallel graphics processing units with a Single Instruction, Multiple Data (SIMD) programming model. The proposed approaches create a coarse lattice in which each cell contains a local description of surface and volume information, required for rendering such regions of the domain. This low-bandwidth localized memory access pattern is increasingly advantageous in many-core architectures, were the usage of random-access parallel data structures is crucial to provide fast rendering speed and good visual quality.

Keywords: Spatial data, Dense and Sparse Data Structures, Parallel Computing, Spatial Hashing, Surface Parameterization, Subdivision Surfaces, Surface Simplification

Interactive Applications for Sketch-Based Editable Polycube Map

Octocat IEEE Transactions on Visualization and Computer Graphics, (Volume:19, Issue: 7, July 2013); Ismael Garcia, Jiazhi Xia, Ying He, Shi-Qing Xin, Gustavo Patow [pdf]

In this paper we propose a sketch-based editable polycube mapping method that, given a general mesh and a simple polycube that coarsely resembles the shape of the object, plus sketched features indicating relevant correspondences between the two, provides a uniform, regular and user-controllable quads-only mesh that can be used as a basis structure for subdivision. Large scale models with complex geometry and topology can be processed efficiently with simple, intuitive operations. We show that the simple, intuitive nature of the polycube map is a substantial advantage from the point of view of the interface by demonstrating a series of applications, including kit-basing, shape morphing, painting over the parameterization domain, and GPU-friendly tessellated subdivision displacement, where the user is also able to control the number of patches in the base mesh by the construction of the base polycube.

 
Keyworkds: Digital Geometry Processing, Surface Parameterization, Polycube Map, GPU Subdivision Surface

A Runtime Cache for Interactive Procedural Modeling

Octocat SMI 2012: Shape Modeling International, Computer & Graphics; Tim Reiner, Sylvain Lefebvre, Lorenz Diener, Ismael Garcia, Bruno Jobard, Carsten Dachsbacher [project page]

We present an efficient runtime cache to accelerate the display of procedurally displaced and textured implicit surfaces, exploiting spatio-temporal coherence between consecutive frames. We cache evaluations of implicit textures covering a conceptually infinite space. Rotating objects, zooming onto surfaces, and locally deforming shapes now requires minor cache updates per frame and benefits from mostly cached values, avoiding expensive re-evaluations. A novel parallel hashing scheme supports arbitrarily large data records and allows for an automated deletion policy: new information may evict information no longer required from the cache, resulting in an efficient usage. This sets our solution apart from previous caching techniques, which do not dynamically adapt to view changes and interactive shape modifications. We provide a thorough analysis on cache behavior for different procedural noise functions to displace implicit base shapes, during typical modeling operations.

 
Keywords: Parallel Hashing, Runtime Cache, Interactive Shape Modeling, Implicit Surface Rendering, Procedural Textures

Coherent parallel hashing

Octocat ACM Transactions on Graphics
Proceedings of SIGGRAPH Asia, Vol. 30(6), 2011, Ismael Garcia, Sylvain Lefebvre, Samuel Hornus, Anass Lasram [project page]

Recent spatial hashing schemes hash millions of keys in parallel, compacting sparse spatial data in small hash tables while still allowing for fast access from the GPU. Unfortunately, available schemes suffer from two drawbacks: Multiple runs of the construction process are often required before success, and the random nature of the hash functions decreases access performance. We introduce a new parallel hashing scheme which reaches high load factor with a very low failure rate. In addition our scheme has the unique advantage to exploit coherence in the data and the access patterns for faster performance. Compared to existing approaches, it exhibits much greater locality of memory accesses and consistent execution paths within groups of threads. This is especially well suited to Computer Graphics applications, where spatial coherence is common. In absence of coherence our scheme performs similarly to previous methods, but does not suffer from construction failures. Our scheme is based on the Robin Hood scheme modified to quickly abort queries of keys that are not in the table, and to preserve coherence. We demonstrate our scheme on a variety of data sets. We analyze construction and access performance, as well as cache and threads behavior.

 
Keywords: Spatial Data, Parallel Computing, Coherent Memory, Cache Memory, Hashing, Sparse Data

Editable Polycube Map for GPU-based Subdivision Surfaces

Octocat I3D 2011: Proceedings of Symposium on Interactive 3D Graphics & Games; Jiazhi Xia, Ismael Garcia, Ying He, Shi-Qing Xin, Gustavo Patow [project page]

In this paper we propose an editable polycube mapping method that, given an arbitrary high-resolution polygonal mesh and a simple polycube representation plus optional sketched features indicating relevant correspondences between the two, provides a uniform, regular and artist-controllable quads-only mesh with a parameterized subdivision scheme. The method introduces a global parameterization, based on a divide and conquer strategy, which allows to create polycube-maps with a much smaller number of patches, and gives the user much more control over the quality of the induced subdivision surface. All this makes it a practical method for real-time rendering on modern hardware (e.g. OGL 4.1 and D3D11 tessellation hardware). By sketching these correspondence features, processing large-scale models with complex geometry and topology is now feasible. This is crucial for obtaining watertight displaced Catmull-Clark subdivision surfaces and high-quality texturing on real-time applications.

 
Keywords: Digital Geometry Processing, Surface Parameterization, Polycube Map, GPU Subdivision Surface

IGT: Inverse Geometric Textures

Octocat ACM Transactions on Graphics, Proceedings of SIGGRAPH Asia, Vol. 27(5), 2008; Ismael Garcia, Gustavo Patow
[project page]

Preserving details from a high resolution reference model onto lower resolution models is a complex, and sometimes daunting, task as manual intervention is required to correct texture misplacements. Inverse Geometric Textures (IGT) is a parameterization independent texturing technique that allows preservation of texture details from a high resolution reference model onto lower resolutions, generated with a given simplification method. IGT uses a parameterization defined on the reference model to generate an inversely parameterized texture that stores, for each texel, a list of all triangles that mapped onto it. This way, for any valid texture coordinate, IGT can know the point and the triangle of the detailed model that was projected, allowing application of details from the reference model onto the fragment from the low-resolution model. IGT is encoded in compact data structures and can be evaluated quickly. Furthermore, the high resolution model can have its own independent, secondary parameterization, so that no additional effort is required to directly use artist-designed content.

 
Keywords: Appearance Preserving Simplification, Detail-Recovery, Computer Games, Texturing, Parameterizations, Level-of-Detail

Generation and interactive visualization of 3D vegetation

Octocat Master thesis in Computing, 2007; from the University of Girona and the UPC Barcelona Tech; advised by Dr. Gustavo Patow and Prof. Mateu Sbert [pdf]

Multi-layered indirect texturing for tree rendering

Octocat Eurographics Workshop on Natural Phenomena 2007; Ismael Garcia, Gustavo Patow, Laszlo Szirmay-Kalos, Mateu Sbert
[project page]

This paper presents a technique to render in real time complex trees using billboard clouds as an impostor simplification for the original polygonal tree, combined with a new texture-based representation for the foliage. The technique provides several new contributions with respect to previous approaches. The new algorithm allows progressive level of detail both at the geometric and at the shader levels. It also preserves the parallax effects of the original polygonal model keeping leaf positions, orientations, and preserving the overlapping of the leaves as seen from any view point. In addition, the texture-based representation provides high-definition close views without introducing high memory requeriments. We adapted a realistic lighting model with soft shadows and a global illumination precomputation, allowing to render highly complex scenes with thousands of trees in real time.

 
Keywords: Image Generation, Clustering, 3D Graphics, Realism

Leaf cluster impostors for tree rendering with parallax

Octocat Short Paper of Eurographics (Dublin, Ireland), pp. 69-72, 2005; Ismael Garcia, Mateu Sbert, Laszlo Szirmay-Kalos

This paper presents a simple method to render complex trees on high frame rates while maintaining parallax effects. Based on the recognition that a planar impostor is accurate if the represented polygon is in its plane, we find an impostor for each of those groups of tree leaves that lie approximately in the same plane. The groups are built automatically by a clustering algorithm. Unlike billboards, these impostors are not rotated when the camera moves, thus the expected parallax effects are provided. On the other hand, clustering allows the replacement of a large number of leaves by a single semi-transparent quadrilateral, which improves rendering time considerably. Our impostors well represent the tree from any direction and provide accurate depth values, thus the method is also good for shadow computation.

 
Keywords: Image Generation, Clustering, 3D Graphics, Realism

Technical skills

Languages

English (Read, Write and Speak: Fluent), Spanish (mother language), Catalan (Read, Write and Speak: Fluent).

Programming Languages

C, C++, OpenCL, CUDA, Aarch64 Assembly, NEON, SVE, R, Python, Latex, MatLab, GLSL, SQL, NoSQL, HTML, CSS, PHP.

Programming frameworks and APIs

Tensorflow, R, Jupyter Notebook, Caffe, OpenCV, DirectX, OpenGL, OpenMP, Unity, Ogre3D, Android NDK, LLVM.

Software

Git, Vim, GDB, Confluence, JIRA, 3ds Max, Maya, Zbrush, Blender, Photoshop, Gimp, Inkscape, Visual Studio.

Operating System and Firmware development

Linux, Android, Windows, Firmware and bare-metal.

Keywords: parallel computing, multi-threaded design, algorithm design, numerical methods, data visualization, machine learning, computer vision, 3d graphics and game engine programming, white papers, technical papers, GPU, CPU and FPGA development

Academic teaching

From 2010 to 2011 Multimedia and computing technologies,

Technical Computer Engineering (University of Girona)
Teaching assistant

From 2009 to 2010 Multimedia and computing technologies,

Technical Computer Engineering (University of Girona)
Teaching assistant

From 2008 to 2009 Information Technologies,

Enviromental Science (University of Girona)
Teaching assistant

From 2007 to 2008 Effective audio-visual presentations,

Law (University of Girona)
Teaching assistant

From 2007 to 2008 Information Technologies,

Enviromental Science (University of Girona)
Teaching assistant

Conference talks

2018: Data + Insights

Arm internal Data Science Conference

2011: Event Lab Talk

Parallel computing for data processing, rendering & interaction
Event Lab Invited Speaker
University of Barcelona Barcelona, Spain

2011: Coherent parallel hashing

SIGGRAPH Asia 2011
Hong Kong, China

2011: Editable Polycube Map for GPU-based Subdivision Surfaces

Symposium on Interactive 3D Graphics and Games 2011
San Francisco, USA

2008: IGT: Inverse Geometric Textures

SIGGRAPH Asia 2011
Singapure, Singapore

2007: Multi-layered indirect texturing for tree rendering

Eurographics Workshop on Natural Phenomena 2007
Prague, Czech Republic

2005: Leaf cluster impostors for tree rendering with parallax

Eurographics 2005
Dublin, Ireland

Supervised Bachelor Students:

2017 Gershom Akoli Agim

Deep Neural Networks on Arm Cortex-A CPUs: Analysis of CPU Inference on Vision workloads
MEng Electrical & Electronic Engineering Hons Project
Heriot-Watt University, United Kingdom

2016 Jan-Peter Larsson

3D Reconstruction using Stereo Matching Techniques on Scalable Vector Processors
MEng Electrical Hons Project
Edinburgh University, United Kingdom

2011 Enrique Nuzete

Interactive polycubemap editor
BEng Project, Technical Computer Engineering
University of Girona, Spain

2011 Tania Mendes

Modelling and visualization of skeleton-based animations
BEng Project, Technical Computer Engineering
University of Girona, Spain

2007 Verena Skuk

Procedural modelling and rendering of vegetation
Student Research Project
University of Girona, Spain

2007 Isaac Moles

Real-time rendering of large forest
BEng Project, Technical Computer Engineering
University of Girona, Spain

Other professional activities

Program Committee Member

CGVCVIP Computer Graphics, Visualization, Computer Vision & Image Processing

2012 IADIS International Conference Computer Graphics Visualization and Image Processing
Journal program committee member

CEIG:

CEIG 2015
Conference program committee member

Reviewer

Siggraph Asia:

Siggraph Asia 2014
Technical papers reviewer
Siggraph Asia 2015
Technical papers reviewer

CGI Computer Graphics International:

CGI 2012
Technical papers reviewer

I3D Interactive 3D Graphics and Games:

I3D 2012
Technical papers reviewer

EG Eurographics:

EG 2008
Technical papers reviewer

EG 2013
Technical papers reviewer

Computer Animation and Virtual Worlds Journal:

2014 Computer Animation and Virtual Worlds Journal
Technical papers reviewer

CEIG Congreso Español de Informática Gráfica:

2015 CEIG 2015
Technical papers reviewer

2009 CEIG 2009
Technical papers reviewer

2008 CEIG 2008
Technical papers reviewer

Conference Organizer

2009 Eurographics Symposium on Rendering, EGSR
Girona, Spain
Local organizer

Industry research collaborations

2010 GPU Mesh Processing tools
NVIDIA Mutual Non-Disclosure Agreement

Education and training

2007 – 2012 Ph.D. in Computer Science

Dissertation: Parallel spatial data structures for interactive rendering
BR PhD Fellowship from the University of Girona

2006 – 2007 Master in computing

From the University of Girona, and the UPC Barcelona Tech

2003 – 2006 Computer Engineering

University of Girona, Spain

1999 – 2003 Technical Computer Engineering

University of Girona, Spain

Academic experience

From June 2011 to December 2013 Advances in virtual reality for cutting edge applications

Spanish Ministry of Science and Technology Project (TIN2010-20590-C02-02)
Research developer

From November 2007 to July 2010 CALBaD: Computer Aided Light Based Design

Spanish Ministry of Science and Technology Project (TIN2007-67120)
Research developer

From October 2009 to December 2009 Research intership - INRIA Nancy (France), Alice project-team

Phd thesis research intership under supervision of Dr.Sylvain Lefebvre
Mobility grant TME2008-00961 from Alice project-team
INRIA Nancy France
Reserch developer

From May 2007 to May 2011 PhD research fellowship BR

University of Girona
Research PhD student

From September 2004 to April 2007 Gametools Project

European Union Project (IST-2-004363)
Research developer

From February 2010 to April 2010 Research intership - INRIA Nancy (France), Alice project-team

Phd thesis research intership under supervision of Dr.Sylvain Lefebvre, INRIA contract Alice project-team
INRIA Nancy, France Research developer

From February 2005 to May 2005 Research undergraduate intership

Undergraduate final project under supervision of Prof.László Szirmay-Kalos Technical University of Budapest
Erasmus programme grant
Research developer

Previous experience

From June 2003 to March 2006 El Baúl S.A. – Grupo editorial el baúl

Redesign and implementation of online classified advertisement and community website. elbaul.es
Web developer

From July 2002 to December 2002 Institut d’Informàtica i Aplicacions, Universitat de Girona

Review and performance analysis of of the Sony’s Playstation 2 Linux Development Kit. Project number TIC2001-2416-C03-01, financed by the Spanish Ministery of Science and Technology [pdf]
Software developer

From June 2000 to September 2000 Igm Web S.L.

Design and implementation of several corporative websites.
Igm Web S.L.
Web developer

From June 1999 to September 1999 Kripton Networks

Writing technical reviews of videogames as a freelance web journalist. Iespana/Informatica
Web technical writer