60 likes | 180 Vues
This thesis proposal addresses the recognition of bytecodes and their execution using advanced hardware architecture, specifically focusing on the vectorization of Java. The research aims to develop a Java program that efficiently identifies loops and arrays, including those embedded within loops, from bytecode. Challenges faced include utilizing abandoned tools and adapting open-source virtual machines like KAFFE and GCJ for bytecode processing and performance optimization. The goal is to automate the recognition and acceleration of patterns while exploring native method calls to enhance performance.
E N D
Thesis Proposal Template Recognition of Bytecodes and Execution using Hardware Architecture. (Vectorization of Java) by Ian Reddy
Progress - Used Java assist to write a program - which can recognize loops, recognize arrays - recognize arrays embedded within loops - from bytecodes. - trying to enhance this program to read profiler output, - Next, -How can I accelerate these patterns. -The process should be fairly automated.
Progress ..... Literally Stuck ! Option 1 - Encountered several programs, which can convert bytecodes to C - tools like TOBA, HARRISA, JC claim to achieve this conversion -all these tools are abandoned projects (not touched for over 5 yrs now) - they use older versions of JDK -failed to get them work, even tried to manipulate their source code. - the HARRISA would build, but the executables fail
Progress ..... Literally Stuck Option 2 - Looked into some open source virtual machines, - looked into the JC, mentioned previously. - working on the KAFFE virtual Machine, - Trying to get KAFFE VM, recognize patterns, - Accelerate them by modifying the VM code. - Fairly complex Job
Progress ..... Literally Stuck Option 3 - Working on the GCJ for LINUX , - GCJ is built on the GCC , - GCJ is like a front end to the GCC (documentation states) - GCJ can read bytecodes, - can I use GCJ to pass options to the underlying GCC, - the underlying GCC, may be optimized for certain architectures.
Progress ..... Literally Stuck Option 4 - I can introduce calls to native methods, which already exist - these methods may have been manually written - would make a call only if method exists - will not be automated - will lead to another high performance library.