{'fraction_non_alphanumeric': 0.017815646785437646, 'fraction_numerical': 0.006196746707978312, 'mean_word_length': 5.152380952380953, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Performance and energy consumption analysis of java code utilizing embedded GPU

GPUs and multicore CPUs are becoming common in today's embedded world of tablets and smartphones. With CPUs and GPUs getting more complex, maximizing hardware utilization and minimizing energy consumption are becoming problematic. The challenges faced in GPGPU computing on embedded platforms are different from their desktop counterparts due to the memory and computational limitations. This study evaluates the advantages of offloading Java applications to an embedded GPU. By employing two approaches namely, Java Native Interface (JNI-OpenCL) and Java bindings for OpenCL (JOCL) we allowed programmers to program an embedded GPU from Java. Experiments were conducted on a Freescale i.MX6Q SabreLite board which contains a quad-core ARM Cortex A9 CPU and a Vivante GC 2000 GPU that supports the OpenCL 1.1 Embedded Profile. The results show up to an eight times increase in performance efficiency by consuming only one-third the energy compared to the CPU-only version of the Java program. This paper demonstrates the performance and energy benefits achieved by offloading Java programs onto an embedded GPU. To the best of our knowledge, this is the first work involving Java acceleration on embedded GPUs.