Saturday, May 5

Hardware Acceleration in the Cloud

Computers are great at a lot of things. However, general-purpose computers can benefit from help on certain tasks, which is why your video card and sound card both have their own specialized hardware to offload the CPU. If Accelize has its way, some of your hardware acceleration will be done in the cloud. Yes, we know. The cloud is the buzzword of the week and we are tired of hearing about it, too. However, this service is a particularly interesting way to add FPGA power to just about any network-connected CPU.

Currently, there are only four accelerators available, including a hardware-assisted random number generator, a GZIP accelerator, an engine for rapidly searching text, and a BMP to JPEG converter. The company claims, for example, that the search engine can find 2500 entries in the 60 GB Wikipedia archive in 6 minutes. They claim a traditional CPU would take over 16 days to do the same task. The BMP to JPEG converter can process faster than required to feed real-time HD video.

The cloud, in this case, is FPGA resources hosted in the Amazon cloud or in the OVH public cloud. They’ll clearly charge for the service at some point using a “coin” system. However, right now they are letting you sign up with nothing more than an e-mail address and crediting your account with 50,000 coins. Apparently, coins are 1,000 for one dollar.

Being hardware, there are certain limitations. For example, the search engine can’t handle more than 2,500 search terms and each word can’t be wider than 36 characters. That’s pretty generous, though. On the Amazon cloud, the search engine processes 145 MB/second and every 128 MB costs one coin. So for a dollar, you could process about 128 GB of data.

You need an API key to use the service. Presumably, that’s how they know where to deduct the coins. You can find examples of using each service on GitHub using Python. There’s nothing magic about Python, though if you don’t mind getting your hands dirty. The Python API offers simple calls to start the service and transfer files. But anything that can handle a REST API could use the service.

There are two interesting things about the Accelize offering. First, small computers like a Raspberry Pi stand the most to gain from acceleration like this. If it is worth paying for it is impossible to say without understanding the actual costs, but it is still interesting and could open up new possible applications.

The other interesting thing is that Accelize clearly means to create an “app store-like” environment. They are soliciting FPGA developers to create accelerators, make them available, and monetize them. In addition, they are building another store to provide IP cores that developers can use to build accelerators. For example, suppose you placed an FPGA “core” into the developer’s store (they call it QuickStore) to scale video. Someone developing an accelerator to do video can use this core. Users will use the accelerator which will cost a certain amount of coins. Some revenue will go to Accelize, some to the accelerator developer, and some to the video scaler developer.

If this were to take off, that could be a great way to monetize your FPGA skills. The only problem we see is the applicability of these FPGA accelerators. For example, one reason you might use an FPGA is to handle real-time processing. However, having the FPGA in the cloud necessitates a certain amount of overhead and uncertainty of timing and availability. If the overhead is small compared to the processing time, that’s a win. But clearly, there are some FPGA uses that aren’t going to be amenable to the cloud.

If you want to learn more about FPGAs as a prelude to getting rich by providing accelerator functions, you can start with our tutorial. By the way, we usually think of configuring FPGAs with Verilog, VHDL, or something similar. You can do that with the FPGAs in the accelerator, but you can also mix in C code, which isn’t unheard of.

No comments:

Post a Comment