A convolutional neural network (CNN) is a biologically inspired algorithm, highly capable at processing images and videos. Nowadays, CNNs are widely known and used: they watch our safety from the... Show moreA convolutional neural network (CNN) is a biologically inspired algorithm, highly capable at processing images and videos. Nowadays, CNNs are widely known and used: they watch our safety from the CCTV cameras, help doctors diagnose diseases, navigate cars, and do many other important things. One of the recent trends is to execute CNNs on edge devices: cameras, mobile phones, smart watches, etc. This helps to run CNNs faster and ensures privacy of the data used by the CNNs. This, however, is difficult to do. The problem is that the edge devices are small and often do not have enough resources to execute CNNs. In my dissertation, I study this problem and offer solutions for it. I propose specific manners to design and execute CNNs, so that they can run on edge devices efficiently. Show less
Systems are called real-time systems, if the correctness of the system does not only depend on the correctness of the system output but also on whether the output is delivered on time. Some... Show moreSystems are called real-time systems, if the correctness of the system does not only depend on the correctness of the system output but also on whether the output is delivered on time. Some examples of real-time systems are medical systems, automotive, aircrafts, etc. With the advent of Internet of Things (IoTs) and Cyber-Physical Systems (CPS), real-time systems and the systems that desire to apply real-time discipline are becoming ubiquitous. The increasing complexity of real-time software and the emerging new hardware inspire us to revisit the ``old-wise'' in the embedded system community and the real-time community and to propose novel solutions dealing with the drastic changes in real-time systems. Therefore, in this dissertation, we propose the new techniques and algorithms to improve the performance of real-time systems in terms of latency, energy, and schedulability. Show less
In the digital part of large-scale phase array radio telescopes, the dominant streaming signal processing part is configured at run-time through a reactive and decentralized control and monitoring... Show moreIn the digital part of large-scale phase array radio telescopes, the dominant streaming signal processing part is configured at run-time through a reactive and decentralized control and monitoring part. Interfacing and synchronizing these two parts without altering the behavior and performance of the dominant signal processing part is an issue when they are first considered in isolation. To address this issue before going to implementation, we propose to raise the level of abstraction, by expressing system-level specifications (in terms of application, architecture, and mapping) based on models. In the application model, the model of the control part and the model of the signal processing part are synchronized based on a notion of time that is known only to the control part. In the architecture model, the control model has a tree-like structure, whose leave nodes are interfaced with the computational nodes in the signal processing part. The mapping is based on iterative and interactive transformations that lead to an implementation-level specification, from where we consider that different implementation tools can take over to implement different parts of the system. Show less