Fixstars software acceleration service
Software acceleration that makes the impossible possible
Until the early 2000s, software performance was driven mainly by the increased performance of hardware in areas such as microprocessor clock frequency and memory speed. These hardware improvements automatically increased the performance of software with no extra programming effort.
Driving these hardware advances was a law called "Denard Scaling" that long supported the performance improvement of semiconductors.
"Denard scaling" means that if elements such as transistors constituting a microprocessor are made smaller (miniaturized), then the operating voltage can be lowered and, "even if operating speed and element quantity are improved, power consumption can be maintained". It was a very attractive law for semiconductor manufacturers.
In keeping with this rule, semiconductor makers continued to miniaturize elements until the early 2000s, creating faster and more densely packed processors.
However, around 2000, "Denard Scaling" lost its hold for simple miniaturization. By continuing to improve the clock frequency by miniaturization, the problem of heat generation arose. As a result, semiconductor manufacturers were forced to devise, "how to use the elements themselves", via miniaturization rather than improving the speed of the devices. In other words, increases in processor speed (clock frequency, etc.) became increasingly difficult to achieve while focus shifted towards constraining size.
The first step taken by semiconductor manufacturers was simply to arrange several processor units. By installing multiple processor units (cores), it became possible to execute multiple software instructions simultaneously.
In order to obtain the performance improvement of multi-core processors, it is necessary for engineers to write programs that distribute the processing to each core. Therefore, unless an engineer writes software explicitly for multi-core processors, the performance gains will not be realized.
Thus, in the late 2000s, the IT industry entered the 'era of high performance software'. Unless an engineer considers multi-core parallelization, significant performance improvement can not be expected. And now, the improvements to the size of hardware (miniturization) is further evolved by Moore's Law. Hardware, such as many core processor, GPU, FPGA, etc., has increasingly shrunk to practical size and the range of its application has expanded. While software engineers have acquired better environments with such new hardware, we face a situation where even higher software performance is required.
In addition, the incremental increases of Moore's law are expected to end in the long term. In the Post Moore era, the size improvements of processors will also reach the limit. If you want more speed, you will develop a processor dedicated to a specific process, not a general-purpose processor, or a computer completely different from the previous processors. This is represented by hardware for deep learning developed rapidly in recent years; hardware such as quantum computers. In these recent circumstances, the future of software development may be to master dedicated hardware environments.
While the "era of high-performance software" has arrived, the product development cycle in recent years has been shortened due to shortening of the product life cycle. As a result, the development cycle of the software installed in the product is also shorter. Furthermore, software development is becoming more complicated, coupled with the advancement of algorithms by the rise of AI / machine learning in recent years, and the diversification of the above-mentioned hardware.
Under these circumstances, it has become difficult in terms of development period and resources for corporate researchers and software engineers to learn new hardware and algorithms. As a result, the development period increases, personnel expenses and educational expenses increase and loss of sales opportunities etc. occurs.
At Fixstars, we have enormous and diverse engineers with knowledge of advanced hardware and algorithms capable of solving these problems. We interview customer's situations, propose various software development and high-speed solutions corresponding to customer's needs, and implement the product. As a result, customers themselves do not have to pay learning costs for the latest hardware and many algorithms, and as a total, high-performance software development in a short period becomes possible.
Fixstars Engineer's extensive support record
We achieve higher performance software development in a short time
Speeding up is a way to find waste and eliminate waste. It may be necessary to eliminate waste of the algorithm itself or to "eliminate waste of hardware and reduce performance". However, uselessness is a difficult problem as it also depends on product specifications and requirements.
We also propose weight reduction, improvement, reconsideration and outsourced development of algorithms for customers seeking even higher speed. By carefully examining specifications and requirements from a third-party perspective, it may be possible to improve the performance even more than expected. In addition to speeding up software, we also offer a wide range of suggestions such as hardware selection and system-wide setup.
In the actual acceleration work, the engineer has to find the time for speeding up, select the acceleration technique, and apply the selected method. To do that, we need to learn the speeding up methods, test, and iterate for the highest performing solution. This includes various elements such as knowledge of the target hardware, knowledge of the performance of the programming language to be used, compiler, library, etc., algorithm used, and so on. These learnings tend to require new learning and time-consuming costs as the development environment changes.
In Fixstars, engineers are accumulating this knowledge every day through business, and we can realize high-speed and highly efficient development. As a result, the development period is shortened, not only personnel expenses but also educational expenses can be reduced and early product launch etc. will be possible. Customers can therefore spend time on essential parts of product development.
We will respond to algorithms and fields that evolve rapidly by conducting research on papers as necessary, such as the latest machine learning and deep learning algorithms, image processing, image recognition algorithms and so on. Moreover, the development corresponds to the customer's own algorithm and needs.
Of course our expertise is not only in the latest generation CPU and GPUs, in 2017 we began support of quantum computer before many other companies. We will continue to support various hardware such as new architectures, hardware of new paradigms, and customer's own hardware.
The speedup of software consists of a combination of various problems and tasks. In Fixstars, we will clarify the issues and problems in order to facilitate direct communication with our engineers and achieve high speed performance. Engineers are looking for the best possible plan and offer solutions suitable for customers.
In addition, we have achieved a track record in accelerating hardware of various types from various fields such as automotive, video, medical, industrial, mobile, financial, big data,various types of CPU, GPU, FPGA, DSP, PLC, etc., and from large scale cluster to SoC. We will continue to provide software acceleration services for a wide range of problems and issues not limited to these.
According to customer's request (required specification), we port the existing software on the target hardware and optimize it.
We investigate / propose hardware specifications from the viewpoint of software development (processing performance, ease of development, etc.).
We optimize your algorithm for the target processor. We also support the development of algorithms themselves.
We support software implementation and performance evaluation at the preliminary development stage, performance estimation etc on target hardware and software development.
We will investigate whether your software fully utilizes the hardware performance. We will also report on the problems identified and future improvement proposals.
In addition to this, we support customers in a wide range of phases from research to product development.
In various industrial fields, we offer optimal high-speed solution for customers' products.
We provide a variety of solutions to help speed software upgrades.
We are providing and supporting accelerator boards equipped with FPGAs that can be designed using OpenCL (Open Compute Language).
We will combine optimization technology making full use of parallel processing technology and characteristics of various accelerators with a quantum computer showing overwhelming performance to provide a new high speed solution.
We offer IP core for FPGA by "Halide" which can shorten Time to Market to 1/10 or less. A lot of "Halide" sample code is released.
We provide a framework for high-speed processing of tasks expressed in the form of DAGs on the execution platform of "Asakusa Framework TM" for efficiently developing and operating batch processing of business systems doing.
We provide a framework that provides functions necessary for financial institutions to use Windows HPC Server 2008 R2 as OS / middleware of cluster systems.