How well do common programming tasks for GPUs perform?

Recently, I started work on a project to establish how best to use the computing power available in modern graphics cards for general programming. It seems that Field Programming GPUs (GPGPUs) have a lot of bias towards scientific applications with a lot of heavy math, as this fits well with the GPU computational model. All this is good and good, but most people do not spend all their time on modeling software, etc., Therefore, we decided that it is possible to create a common basis for simple creation of software with GPU support for the masses.

This leads to a question that I would like to ask; What are the most common types of work performed by programs? This is not a prerequisite that the work translates perfectly to graphical programming, as we are ready to accept modest performance improvements (nothing is better, right?).

There are several items that we have in mind:

  • Data Management - Manipulating large amounts of data from databases and otherwise.
  • Programs like spreadsheets (somewhat related to the above).
  • GUI programming (although it may not be possible to access the appropriate code).
  • General algorithms such as sorting and searching.
  • General collections (and their integration with data manipulation algorithms)

? , , , "".

, , , , , .

, .

+5
6

. , parallelism. , .

+3

. , parallelism. , .

, . , , . , , , . , - , , .

+3

, , ? ...

  • : ( , ). .
  • , , .
  • , .
  • (, ..).
  • , , .
  • , .
  • .
  • .
+2

/ ACM Queue, , ( , ).

+1

. / . , //.

0

Another aspect to consider when using a GPU is bus speed; most graphics cards have higher bandwidth when transferring data from the CPU to the GPU, as they do most of the time. The bandwidth from the GPU to the CPU, which is needed to return results, etc., is not so fast. Therefore, they work best in pipelined mode.

0
source

All Articles