Coded-Dude
06-30-2006, 10:51 PM
Unlike on conventional processors, you can achieve near theoretical-maximum performance for real applications on the Cell Broadband Engine™ (Cell BE) processor. For this, you must be aware of the Cell BE processor's architectural characteristics: get to know them better with these 25 tips to optimal application performance.
TIPS IN DETAIL (http://www-128.ibm.com/developerworks/power/library/pa-celltips1/?ca=dgr-lnxw09OptimalAppPerformance)
Cell BE system practices
Tip 1: Offload as much work onto the SPEs as possible
Tip 2: Choose a partitioning and work allocation strategy that minimizes atomic operations and synchronization events
Tip 3: Accommodate potential data type differences
PPE programming practices
Tip 4: Exploit multithreading
Tip 5: Self-manage cache
Tip 6: Avoid microcoded opcodes
Memory subsystem programming practices
Tip 7: Make efficient use of programmer-managed data transfers
Tip 8: Design data structures for efficient access
Tip 9: Initiate DMAs from the SPE
Tip 10: Lock to avoid thrashing
Tip 11: Allocate large data sets from large pages to reduce page table and TLB thrashing
Tip 12: Maintain synchronization variables in their own reservation block
Tip 13: Uniformly distribute memory bank accesses
Tip 14: Stay on-chip
SPE programming practices
Tip 15: Avoid external scalars
Tip 16: Exploit SIMD
Tip 17: Understand the instruction set and issue rules
Tip 18: Choose optimal SIMD strategy
Tip 19: Unroll and pipeline loops
Tip 20: Overlap data movement with computation
Tip 21: Eliminate or reduce branches
Tip 22: Avoid integer multiplies
Tip 23: Use offset pointers
Tip 24: Consider computing versus using pre-computed results
Tip 25: Design for limited local store
The Cell BE processor is a very powerful processing complex. Specialized programming techniques employed either directly by the programmer or indirectly through tools (like compilers) can pay great dividends toward application performance. Armed with the strategies and techniques outlined in this article, you can realize the full potential of the Cell Broadband Engine processor.
There are some very interesting alternatives to standard practices, that some of you might finf pretty interesting. I put this in tech central becasue it is not directly realted to PS3, rather it focuses more on programing for CELL in general.
cheers!
TIPS IN DETAIL (http://www-128.ibm.com/developerworks/power/library/pa-celltips1/?ca=dgr-lnxw09OptimalAppPerformance)
Cell BE system practices
Tip 1: Offload as much work onto the SPEs as possible
Tip 2: Choose a partitioning and work allocation strategy that minimizes atomic operations and synchronization events
Tip 3: Accommodate potential data type differences
PPE programming practices
Tip 4: Exploit multithreading
Tip 5: Self-manage cache
Tip 6: Avoid microcoded opcodes
Memory subsystem programming practices
Tip 7: Make efficient use of programmer-managed data transfers
Tip 8: Design data structures for efficient access
Tip 9: Initiate DMAs from the SPE
Tip 10: Lock to avoid thrashing
Tip 11: Allocate large data sets from large pages to reduce page table and TLB thrashing
Tip 12: Maintain synchronization variables in their own reservation block
Tip 13: Uniformly distribute memory bank accesses
Tip 14: Stay on-chip
SPE programming practices
Tip 15: Avoid external scalars
Tip 16: Exploit SIMD
Tip 17: Understand the instruction set and issue rules
Tip 18: Choose optimal SIMD strategy
Tip 19: Unroll and pipeline loops
Tip 20: Overlap data movement with computation
Tip 21: Eliminate or reduce branches
Tip 22: Avoid integer multiplies
Tip 23: Use offset pointers
Tip 24: Consider computing versus using pre-computed results
Tip 25: Design for limited local store
The Cell BE processor is a very powerful processing complex. Specialized programming techniques employed either directly by the programmer or indirectly through tools (like compilers) can pay great dividends toward application performance. Armed with the strategies and techniques outlined in this article, you can realize the full potential of the Cell Broadband Engine processor.
There are some very interesting alternatives to standard practices, that some of you might finf pretty interesting. I put this in tech central becasue it is not directly realted to PS3, rather it focuses more on programing for CELL in general.
cheers!