-
Getting Started
-
FAQs
-
Getting Performance
-
Case Studies
-
Offload™ Library
-
C++ Language Extensions
-
Runtime API
-
Command Line Options
- -snvsips3
- -offloadshowptrcalls
- -nomemcpycacheflush
- -minmemcpysize=[n]
- -memcpydmasize=[n]
- -cachesets=[n]
- -warnonouterreadswrites
- -offloadshowptrcalls
- -BEspul[opt]
- -BEspuL[opt]
- -finline-limit=[n]
- -unroll-factor=[n]
- -outputoffloadcode
- -fno-access-control
- -O[n]
- -BEO[n]
- -BEspuopt:[opt]
- -showcallstackonduplerror
- -ignoretrapwordonspu
- -save-temps
- -ocdir [dir]
- -warnouterthiscalls
-
The liboffload header
-
Software caching library
-
Data locality library
-
Constructs library
-
PS3 SDK Function Overloads
-
Technical Information
-
Compiler Errors
- Summary
- Offload1101
- Offload3001
- Offload3005
- Offload3007
- Offload4000
- Offload4001
- Offload4002
- Offload4003
- Offload4105
- Offload4106
- Offload4107
- Offload2401
- Offload2400
- Offload2302
- Offload1108
- Offload1109
- Offload1115
- Offload1122
- Offload1201
- Offload1202
- Offload2000
- Offload2100
- Offload2200
- Offload2301
- Offload4108
-
Compiler Advice
-
Compiler Warnings
-
-
Features
-
Calling PPU functions from SPU
-
Accessing Global Variables
-
PPU virtual methods on SPU
-
Exploiting SPU Performance
-
Using Altivec Instrinsics
-
Using SPU Instrinsics
-
The Software Cache
-
Type Safe Pointers
-
VMX2SPU Engine
-
Compiler Advice
-
Implicit Function Duplication
-
Structure Type Duplication
-
Helpful command line options
-
Offload (SPU) Job functions
-
Core compiler features
-
Offload™ Library
C++ Language Extensions
__blockingoffload
Creation Of A Synchronous Job
This article was updated on 2011-06-03 04:04:48
The basic Offload™ keyword is __blockingoffload - which is used to denote a synchronous or blocking offload block (as opposed to non-blocking offload blocks).
__blockingoffload()
{
; // performs it's execution on the SPU
};
The __blockingoffload keyword is followed by function-like parenthesis, then the scope of the block. Any work within this scope is performed on the SPU instead of on the PPU. A __blockingoffload block can optionally take parameters that will be passed into the __blockingoffload block's context.
int number = 42;
__blockingoffload(number)
{
;
};
Within the __blockingoffload block, number has been passed in by value, and can be used in calculations within. Parameters passed into __blockingoffload blocks are useful for bringing local variables on the stack within the __blockingoffload block for use.

