Pergunta

Estou interessado em desenvolver software para Sony PlayStation 3 consoles que contém um processador Cell multi-core , tendo como alvo qualquer distribuição Linux PS3 compatíveis com .

"Um único executa PS3 melhor que o mais alto-end desktops disponíveis e compara a todos quantos 25 nós de um IBM Blue Gene supercomputador . " ~ PlayStation3 gravidade Grade

O mais importante:

  1. CPU - Qualquer Linux OS tem acesso a 6 Synergistic Processing Elements 7
  2. GPU - Sony implementa um hypervisor restringindo o acesso ao RSX
  3. Paralela - A IBM fornece um introdução à programação de aplicações paralelas no PS3

Assim, para começar:

  1. Instale Linux no PS3 :
  2. Obter um IDE com um compilador apropriado para que o Linux. .. (help!)
Foi útil?

Solução

Você pode querer tentar Offload C ++ de Codeplay Software. Ele fornece um dialeto prolongado de C ++ facilitando o desenvolvimento de software em hardware multicore como o processador Cell.

A toolchain compilador cruzado permite a compilação de código para o PS3 no Windows, que pode ser útil, dadas as limitações de recursos (por exemplo, a memória do sistema) em um console PS3 rodando Linux, o que pode impactar tempos de compilação e fazer o uso de um PS3 como um desktop estranho.

Versões de compilador e ferramentas do Offload C ++ estão disponíveis visando o PS3 GameOS e Linux no celular com o SDK celular BE. A célula Linux Versão integra com o Eclipse CDT para um IDE.

Disclaimer: Eu sou um desenvolvedor em Codeplay

.

Outras dicas

Você também pode tentar Ubuntu 8.10 (Intrepid Ibex). Seu apoio PS3 é muito bom, e as instruções para instalação e um primer áspero em compilação pode ser encontrada aqui . GCC 4.3 e binutils 4,18 incluir metas para a PPU celular (um alvo PowerPC genérico) e SPUs, e há pacotes disponíveis nos repositórios do Ubuntu (por exemplo SPU-gcc, SPU-g ++, SPU-binutils, PPU-gdb, SPU-newlib , etc), que irá compilar binários para você.

Tanto quanto um IDE adequada, os utilitários acima devem integrar bem com qualquer IDE (ou seja KDevelop, Eclipse CDT, Code :: Blocks), contanto que você pode encontrar de sintaxe destacando arquivos (disponíveis para a maioria das IDEs populares). O SDK celular está disponível, bem, e poderia proporcionar uma melhor integração e pacotes estão disponíveis para RHEL 5.2 e Fedora 9 (deve ser capaz de usar Alien para retirar estes em Debian / Ubuntu, mas não tenho certeza sobre isso).

OpenMPI é uma idéia bem, eles foram capazes de compilá-lo para lâminas de base celular ( aqui ) então eu não acho que deveria ser um problema. Você também pode rolar o seu próprio passagem de mensagens, como baixo custo operacional é fundamental para extrair desempenho bom no celular (embora eu não sei como bem adequada OpenMPI é para isso, ele poderia ser grande).

O livro de Matthew Scarpino, Programação do processador Cell , é bastante atualizado e tem um monte de boas informações. Além disso, href="http://www.informit.com/authors/bio.aspx?a=75896942-4A52-45AE-82BD-2D3C34691117" rel="nofollow site para o livro tem um monte de exemplo de código disponível para download.

Houve também um MIT curso em programação paralela através do processador Cell que tem alguma informação boa, embora algumas delas são fora da data, ou seja, ele usa a mecânica celulares antigos, onde libspe fornecidos seus próprios tópicos. Com a versão mais recente da biblioteca, você vai precisar de ter seus segmentos de outros lugares (pthreads, impulso, qualquer que seja), a fim de executar programas paralelos.

Quanto OS e compilador, eu tenho usado Yellow Dog Linux 6.1. YDL tem funcionado muito bem até agora, muito melhor do Fedora 9 de qualquer maneira, apesar de que é provavelmente um resultado do fato de que YDL vem com um gerenciador de janelas super-leve e Fedora 9 não. Eu tive alguns problemas com a rede, mas esses são provavelmente um produto do ambiente de rede um pouco bizarro que eu tenho o sistema criado em.

Uma vez eu tive YDL instalado e funcionando, então eu instalado os pacotes do Fedora SDK celular em cima (isso leva um pouco de trabalho, como o cellsdk script de instalação falsamente reconhece YDL como RHEL, não Fedora). YDL tem a maior parte do SDK disponível em um de seus acordos de recompra de pacotes, mas por padrão, não muito do que é instalado, apenas os compiladores (claro, eu não descobrir isso até que eu já tinha cortado o instalador IBM para fazer o coisa certa). Estou apenas usando os compiladores IBM básicos (não o material XL).

Há também uma tonelada de informações espalhadas pela IBM local , mas ele pode ser um pouco difícil de fazer sentido.

Esteja atento ao executar código nas SPEs de seu design especial - o tamanho da pilha padrão varia muito de compilador para compilador, e pode causar todos os tipos de problemas quando estouro. É geralmente uma boa prática para declarar a maioria dos dados globalmente no código de SPE, e evitar a pilha exceto para muito pequenas alocações variáveis.

Uma vez que não há cache (ou ... seu cache L2, em um sentido), não há nenhuma penalidade de desempenho real para fazer isso, e você nunca vai correr em problemas como tentar dados DMA de ou para um endereço de memória que não é mais válido, etc.

O compilador IBM SPE é geralmente considerado o melhor, afaik, embora eu nunca tê-lo usado, pessoalmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top