GPGPU applications on MSX (Development Fórums MSX)MSX Resource Center            
                    
English Nederlands Espa�ol Portugu�s Russian              
 Notícias
   Página principal
  Arquivo de notícias
  Tópicos de notícias

 Recursos
   Fórums MSX
  Artigos
  Reviews
  Reportes de feiras
  Fotografias
  Feiras e encontros
  Enquetes
  Links
  Procurar

 Software
   Downloads
  Web-Loja

 MRC
   Quem somos nós
  Entre para nosso time
  Doações
  Políticas
  Contate-nos
  Faça um Link para nós
  Estatísticas

 Procurar
 
  

  

 Login
 

Nome do Usuário

Senha




Você ainda não tem uma conta? Torne-se um amigo-MSX e registre uma conta agora!


 Estatísticas
 

Existem 47 convidados e 0 Amigos do MSX online

Você é um usuário anônimo.
 

Fórums MSX


Fórums MSX

Development - GPGPU applications on MSX

Autor

GPGPU applications on MSX

Grauw
msx professional
Posts: 1006
Postado em: 28 Setembro 2008, 01:33   
So ‘GPGPU’ (General Purpose GPU) programs are all the rage nowadays. I was wondering, who has good ideas of (calculation) tasks you could use the MSX v9938/58 VDP’s command engine for? Theoretically it is much faster than the Z80 .

Some things the v9938 can do for you:

  • logical operations with other data (from VRAM or CPU): and, or, xor, not, timp, tand, tor, txor, tnot
  • 2 bit-precision rotates (in screen 6), i.e. multiplication and division by 4
  • 2 bit shifts (using and for bit masks)

Maybe there is more you can do by e.g. using screen 12, or by placing the data in memory in clever structures, or by using the ‘transparent’ versions of the operators, or by storing data in screen 5 and reading it in screen 6…? Maarten (tH) mentioned that you can color the area between two white dots on a black background by doing an XOR copy one pixel to the left, those kinds of techniques are interesting applications.

I was thinking about my Tiger Tree Hash implementation (link), which does a lot of 64-bit operations which are relatively slow and the VDP could easily apply them to 8 bytes in one go, with carry-over. But I also need to additions/subtracts and odd-number shifts, and TTH is not very easily paralellisable, so I would need to move a lot of data back and forth between the CPU, which very likely causes too much overhead for this to be useful there.

So, any thoughts? Other types of calculations the VDP (or another MSX chip) can do, perhaps by coming up with clever combinations of these? And any applications for this? Certain kinds of hashes (CRC?), bitmap conversion, certain 3D calculations, folding@home, mp3 decoding ?

Btw, you can also respond on my blog, if you want.
Grauw
msx professional
Posts: 1006
Postado em: 28 Setembro 2008, 02:23   
Additionally, 2 or 4 bit to 8 bit conversion and vice versa (using LMMC/LMCM).
Edwin
msx professional
Posts: 626
Postado em: 28 Setembro 2008, 10:04   
Since any mathematic operation can be broken down into a series of logical operations, I'd expect any mass calculation to be possible. However, the sequential nature of operations in for instance additions will probably not make it as quick as you'd want it to be. I expect that the z80 beats the hell out of the VDP for 8 and 16 bit additions. For larger ones you might close in. You'd have to do the math on that one.
mth
msx freak
Posts: 193
Postado em: 28 Setembro 2008, 12:29   
Grauw: The XOR fill trick requires a copy one pixel to the right (unless you tell the VDP to read the pixels right-to-left). A friend told me about this trick, which is used a lot in the Amiga demo scene.

Leo
msx freak
Posts: 238
Postado em: 28 Setembro 2008, 14:42   
you can have a 8bitx8bit look up table in 64kb for division or mult

AuroraMSX

msx master
Posts: 1260
Postado em: 29 Setembro 2008, 10:52   
It might then be even more interesting to use the V9990. It's faster than the V99x8 and has a more generic LogOp implementation. (TNXOR anyone? )
Grauw
msx professional
Posts: 1006
Postado em: 30 Setembro 2008, 11:23   
Well maybe I’m missing something, or the documentation I’m looking at is not complete (http://msxbanzai.tni.nl/v9990/manual.html#writeoperations , I don’t have the official v9990 at hand ), but as far as I can see the v9990 has the same logical operations as the v9938, which has TXOR as well… But yeah, it would be much faster .
AuroraMSX

msx master
Posts: 1260
Postado em: 30 Setembro 2008, 18:29   
Quote:

Well maybe I’m missing something, or the documentation I’m looking at is not complete (http://msxbanzai.tni.nl/v9990/manual.html#writeoperations , I don’t have the official v9990 at hand ), but as far as I can see the v9990 has the same logical operations as the v9938, which has TXOR as well… But yeah, it would be much faster .

Read closer:
1. I said TNXOR :-P
2. The operations mentioned in the docs are examples. It even says so directly above the table. The four Lxx bits define the truth table for the logop, so you can define any binary operation you want.
 
 







(c) 1994 - 2008 Fundação MSX Resource Center. MSX é uma marca registrada da MSX Licensing Corporation.