Content deleted Content added
convert WP:PROD to merge proposal |
No edit summary |
||
(19 intermediate revisions by 14 users not shown) | |||
Line 1:
'''Software development''' for the [[Cell microprocessor]] involves a mixture of conventional development practices for the [[
==Linux on Cell==
{{Cell microprocessor segments}}▼
An open source software-based strategy was adopted to accelerate the development of a Cell BE ecosystem and to provide an environment to develop Cell applications, including a GCC-based Cell compiler, binutils and a port of the Linux operating system.<ref name="research.ibm.com">{{cite web|url=http://www.research.ibm.com/people/m/mikeg/papers/2007_ieeecomputer.pdf
▲'''Software development''' for the [[Cell microprocessor]] involves a mixture of conventional development practices for the [[Power Architecture]]-compatible PPU core, and novel software development challenges with regards to the functionally reduced SPU coprocessors.
==
'''Octopiler''' is [[IBM]]'s prototype [[compiler]] to allow [[software developer]]s to write [[software code|code]] for [[Cell processor]]s.<ref>{{citation|title=Using advanced compiler technology to exploit the performance of the Cell Broadband Engine architecture|date=2017-10-23|url=http://www.research.ibm.com/journal/sj/451/eichenberger.html|archive-url=https://web.archive.org/web/20060411094457/http://www.research.ibm.com/journal/sj/451/eichenberger.html|archive-date=2006-04-11|url-status=dead|publisher=IBM Systems Journal}}</ref><ref>{{Cite web|date=2006-01-20|title=Compiler Technology for Scalable Architectures|url=https://www.empat.tech/services|archive-url=https://web.archive.org/web/20080320071448/http://domino.research.ibm.com/comm/research_projects.nsf/pages/cellcompiler.index.html|archive-date=2008-03-20|access-date=2025-06-11|website=IBM Research|language=en-us}}</ref><ref>{{Cite web|last=Stokes|first=Jon|date=2006-02-26|title=IBM's Octopiler, or, why the PS3 is running late|url=https://arstechnica.com/uncategorized/2006/02/6265-2/|access-date=2025-06-11|website=Ars Technica}}</ref>
▲An open source software-based strategy was adopted to accelerate the development of a Cell BE ecosystem and to provide an environment to develop Cell applications, including a GCC-based Cell compiler, binutils and a port of the Linux operating system.<ref name="research.ibm.com">{{cite web|url=http://www.research.ibm.com/people/m/mikeg/papers/2007_ieeecomputer.pdf|format=PDF|title=An Open Source Environment for Cell Broadband Engine System Software|date=June 2007}}</ref>
==Software portability==
Line 12:
====Differences between VMX and SPU====
The [[
{| class="wikitable" style="margin: 1em auto 1em auto"
Line 21:
| 32 bits || 32 bits
|-
! number of [[Processor register
| 32 <!-- p.28/333 --> || 128
<!-- p.34/333 also shows 32 GP and 32 FP regs, are these part of VMX? -->
Line 37:
| big (default), little <!--p.44/333 --> || big endian
|-
! [[
| Java, non-Java || single precision, IEEE double
|-
! [[
| quadword only || quadword only
|}
Line 52:
====Porting VMX code for SPU====
In some cases
In many cases, however, a directly equivalent instruction does not exist. The workaround might be obvious or it might not. For example, if saturation behavior is required on the SPU, it can be coded by adding additional SPU instructions to accomplish this (with some loss of efficiency). At the other extreme, if Java floating-point semantics are required, this is almost impossible to achieve on the SPU processor. To achieve the same computation on the SPU might require that an entirely different [[algorithm]] be written from scratch.
Line 63:
Transferring data between the local stores of different SPUs can have a large performance cost. The local stores of individual SPUs can be exploited using a variety of strategies.
Applications with high locality, such as dense matrix computations, represent an ideal workload class for the local stores in Cell BE.<ref>{{cite web|url=http://www.research.ibm.com/people/m/mikeg/papers/2006_ieeemicro.pdf
Streaming computations can be efficiently accommodated using [[software pipelining]] of memory block transfers using a multi-buffering strategy.<ref name="research.ibm.com"/>
The software cache offers a solution for random accesses.<ref>{{cite web|url=http://www.research.ibm.com/journal/sj/451/eichenberger.pdf
More sophisticated applications can use multiple strategies for different data types.<ref>{{cite web|url=http://www.research.ibm.com/cell/papers/2008_vee_cellgc.pdf
==References==▼
* [http://www.research.ibm.com/cell/ The Cell Project at IBM Research]
* [http://cag.csail.mit.edu/crg/papers/eichenberger05cell.pdf Optimizing Compiler for a CELL Processor]
* [
* [http://domino.research.ibm.com/comm/research_projects.nsf/pages/cellcompiler.index.html Compiler Technology for Scalable Architectures]
{{reflist}}
▲{{Cell microprocessor segments}}
▲==References==
{{DEFAULTSORT:Cell Software Development}}
[[Category:Cell BE architecture]]
[[Category:Compilers]]
[[Category:Vaporware]]
|