Research Assistant in the Division of Science (Computer Science) - Dr. Moha
at New York University
Abu Dhabi, أبو ظبي, United Arab Emirates -
Start Date | Expiry Date | Salary | Posted On | Experience | Skills | Telecommute | Sponsor Visa |
---|---|---|---|---|---|---|---|
Immediate | 22 Apr, 2025 | Not Specified | 23 Jan, 2025 | N/A | Good communication skills | No | No |
Required Visa Status:
Citizen | GC |
US Citizen | Student Visa |
H1B | CPT |
OPT | H4 Spouse of H1B |
GC Green Card |
Employment Type:
Full Time | Part Time |
Permanent | Independent - 1099 |
Contract – W2 | C2H Independent |
C2H W2 | Contract – Corp 2 Corp |
Contract to Hire – Corp 2 Corp |
Description:
DESCRIPTION
Many companies, such as Google, Facebook, and Amazon are building new specialized programming frameworks. This is because these companies need to allow their users to write simple, high-level code and run it efficiently on different hardware architectures. For example, Google has built TensorFlow, a framework for deep learning allowing users to run deep learning on multiple hardware architectures without changing the code.
Our research team at NYUAD (New York University Abu Dhabi) in collaboration with MIT (Massachusetts Institute of Technology, USA) is developing a new programming framework called Tiramisu [1]. Unlike existing frameworks, Tiramisu can perform advanced code optimizations that are hard to apply otherwise. Because of this, Tiramisu can generate fast code that outperforms highly optimized code written by expert programmers and can target different hardware architectures (multicore, GPUs, FPGAs, and distributed machines).
In order to have the best performance (fastest execution) for a given Tiramisu program, many code optimizations should be applied. Optimizations include vectorization (using hardware vector instructions), parallelization (running loop iterations in parallel), enhancing data locality by fusion, and blocking (i.e. accessing arrays in a way that improves temporal and spatial data locality). A large number of optimizations exist and choosing which optimization should be used and which should not is important for performance. In some situations, some optimizations are harmful to performance while they are beneficial in other situations. Currently, there is no way to help users choose which optimizations should be used. Expert Google programmers usually spend a lot of time trying different optimizations manually to find the best set of optimizations.
The goal of this project is to add support for automatic code optimization in Tiramisu. In particular, we want to use machine learning/deep learning to achieve this. Currently, a basic automatic optimization module that relies on machine learning has been developed and we want to take that module to the next level. The final product of this project would be a compiler pass that allows Tiramisu to automatically choose which optimization should be used for a given unoptimized program. We want to produce a high-quality technique that can be used by the users of Tiramisu and especially by our partner companies and research labs.
Responsibilities:
Please refer the Job description for details
REQUIREMENT SUMMARY
Min:N/AMax:5.0 year(s)
Information Technology/IT
IT Software - Application Programming / Maintenance
Software Engineering
Graduate
Proficient
1
Abu Dhabi, United Arab Emirates