A system for generating instruction code for a cluster of accelerators for execution on one or more radio access network (RAN) servers in a RAN, the system comprising:
- a processor;
- and
- a memory storing computer-executable instructions that when executed by the processor cause the system to:
- receive, by a central processor of a RAN server of the one or more RAN servers, a set of application code, wherein the set of application code performs a task of the RAN server by calling an application programming interface (API), wherein the API comprises mapping of accelerator-agnostic task instruction codes into accelerator-specific executables of an accelerator of a plurality of accelerators;
- identify, based on the set of application code, a common functional block of one or more common functional blocks for executing at least a part of the set of application code in one or more accelerators of the plurality of accelerators, wherein the one or more common functional blocks represent an abstraction layer of functionalities provided by the plurality of accelerators;
- identify, based on the identified common functional block, an accelerator for performing the task from the plurality of accelerators in the one or more RAN servers;
- create an accelerator-specific executable of the identified accelerator by translating, based on the mapping of the API, an accelerator-agnostic task instruction code as a part of the set of application code that corresponds to the identified common functional block into accelerator-specific executable;
- schedule, based on a workload of the central processor of the RAN server, the accelerator-specific executable of the identified accelerator to offload processing of the set of application code from the central processor of the RAN server to the identified accelerator;
- and
- dynamically offload, based on the scheduling, at least by loading the created accelerator-specific executable to the identified accelerator, performing the task from the central processor of the RAN server to the identified accelerator by executing the accelerator-specific executable to process network data.