Utilize NVidia's CUDA technology card to resize JPEG images quickly from Java.
## Deliverables
The standard Java libraries are too slow in resizing a JPEG image. We need faster resize code, preferably utilizing the power of a graphics card to do the resizing (eg. NVidia's CUDA technology).
Other technology to resize will also be considered, providing the performance is adequate.
A zip file is attached to this bid that provides the Java interface to which the Java class must comply. Also included is a Java implementation of this interface to use to benchmark against. The library must be targeted for Java 5 and a Win32 platform (32 and 64 bit).
We need about a 10x to 30x speed improvement above the Java implementation.
We are not sure if this is a realistic goal and would be open to advise from bidders.
More information:
What do we have:
The system that this will plug into is an enterprise multi tier JEE based system. This system is already in production and serves 30 workstations at the moment quite capably. The system delivers images to the workstations from a pool of 20Tb of 2M pixel images that are stored in a DVR database. Image resizing was identified as one of the possible performance bottlenecks for future scalability.
The back end system consists of a JEE application server, database server and image server all running off of a XSAN storage. Currently, the image server is the bottleneck.
Why do we need this then:
Even though performance with the JAVA code is adequate now, we are working on key bottleneck areas to ensure scalability in the future. We can scale by adding more image servers with the current code, or by making the code faster.
What have we tried:
We are already running our image resizing in multiple threads so that the power of new multi core processors can be utized. We have evaluated other resizing libraries such as Image Magik and Python's PIL library. These are both C based libraries and reputed to be very fast. They were not much faster than the Java implementation in our experience.
Why CUDA?
CUDA gives one access to a hardware raster computation engine. We feel that the only chance to get even better performance than what the good C based solutions provide, is to go with a hardware solution.
* * *This broadcast message was sent to all bidders on Thursday Apr 3, 2008 9:39:07 AM:
I have updated the bid request's description to answer some of the questions I get from bidders. Please read the new text to clear up some things. Thanks Etienne
## Platform
Win32