I'm a compiler engineer. I worked mainly on GCC and Go, where I was responsible for support of
newest x86 ISA extensions such as AVX512. I also took part in OpenMP 4.0 and Cilk+ implementation in GCC. I have a strong performance analysis and algorithmic skills, as well as deep knowledge of compiler backend.
Software Development Engineer @ Worked on optimization in Go programming language toolchain.
Accomplishments:
• Identified a set of relevant benchmarks for Go performance measurement
• Optimized functions in standard library, archiving ~10-100% speedup
• Investigated deficiencies in Go code generator for AMD64 From June 2015 to Present (7 months) Software engineer @ Worked on support of newest instruction sets in x86 backend of Gcc compiler and participated in validation of Gcc's standard conformance.
Key accomplishments include:
• Working together with members of OpenMP and Cilk+ standard boards to provide an implementation of their respective standards in Gcc.
• Contributing full support of newest Intel architecture into Gcc, including complete implementation of 5000+ intrinsic function introduced by AVX512, support for automatic vectorization and related performance tuning resulting in 2% performance increase on wide range of benchmarks.
• Work on better register allocation in GCC with respect to extra registers added by newest x86 architecture instruction.
• Collaborating with LLVM and ICC teams in Santa-Clara and Novosibirsk to provide an extensive test suite for testing conformance of complier to Cilk+ standard.
• Archiving two Intel MCC awards and Intel DPD award.
• Establishing excellent working relationships with members of Gnu community, which allowed to publish AVX512-related GCC changes year earlier, without waiting for next release. From October 2012 to Present (3 years 3 months) Software Engineer (intern) @ Worked on support of AVX512 Intel architecture extension in Binutils open-source project. Typical workflow included programming in C programming language, working with Git distributed version control system, writing automatization scripts in Python programming language and using Redmine software for issue-tracking.
Responsibilities:
• Implementing all new instructions and their variants, present in newest AVX512 extension to x86 instruction set, in GNU Binutils project, including their support in assembler and disassembler.
• Generating extensive test suite which covered all of newly added 5000+ instuctions variants with more than 20 tests per instruction.
• Collaborating with GNU Software Foundation members, to assure quickest addition of new functionality to source code of relevant software packages.
• Bug-fixing of GCC complier on x86 architecture based hardware.
• Performance tuning, especially for mobile Intel Atom platform codenamed Saltwell.
• Researching industry-acknowleged SPEC and EEMBC benchmarks in search of possible complier optimizations. From January 2011 to October 2012 (1 year 10 months)
Master of Science (MSc) @ Moscow Institute of Physics and Technology (State University) (MIPT) From 2007 to 2013 Ilya Tocar is skilled in: GCC, Compilers, Binutils, X86, AVX512, X86_64, Microprocessors, Algorithms, Data Structures, C, Software Engineering, x86 Assembly, Cilk+, Git, Vim