Cell
Broadband
Engine
Software
Development
Kit
2.1
Installation
Guide
Version
2.1
SC33-8323-02
Cell
Broadband
Engine
Software
Development
Kit
2.1
Installation
Guide
Version
2.1
SC33-8323-02
Note: Beforeusingthisinformationandtheproductitsupports,readthegeneralinformationinAppendixA,“Notices,”onpage
21.
SecondEdition(March2007)
ThiseditionappliestotheSoftwareDevelopmentKit2.1andtoallsubsequentreleasesandmodificationsuntil otherwiseindicatedinneweditions.
©CopyrightInternationalBusinessMachinesCorporation2006.Allrightsreserved.
Contents
Preface
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. v
Aboutthisbook . . . v
Whatisinthepackage . . . v
Newinthisrelease . . . vi
Supportedplatforms . . . vi
HowtousetheSDK . . . vi
Prerequisites . . . vii
Licenses . . . vii
Gettingsupport . . . viii
Relateddocumentation . . . viii
Chapter
1.
Installing
Linux
Fedora
Core
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 1
DownloadingtheFedoraCore6installationpackages 1 Copyingtheinstallationfiles . . . 1
InstallingFedoraCore6onanx86orPPC64server . 2
InstallingFedoraCore6onaBladeCenterQS20 . . 2
PreparingyourBladeCenterQS20 . . . 2
FedoraCore6installationoverview . . . 2
Thenetworkinstallationenvironment . . . 2
Settingupanetbootenvironment . . . 3
Settingupanetworkinstallationenvironment . . 4
InstallingFedoraCore6 . . . 4
RebootingtheBladeCenterQS20. . . 7
Configuringyum(ifrequired) . . . 7
ManagingaBladeCenterQS20 . . . 7
Checkingthefirmwareversion . . . 7
Checkingwhichfirmwarebankwasbooted . . 8
BootingaBladeCenterQS20 . . . 8
Recoveringfromabadfirmwareboot . . . . 8
ShuttingdownandrestartingtheBladeCenter QS20 . . . 8
FinishingtheFedoraCore6installation . . . . 8
byacc . . . 9 flex . . . 9 freeglut . . . 9 gcc . . . 9 libXext-devel . . . 9 libXmu-devel . . . 9 mesa-libGLU-devel . . . 10 make . . . 10 netpbm. . . 10 perl . . . 10 rsync . . . 10 TK . . . 10
UpdatingtheFedoraCore6installation . . . 11
Chapter
2.
Installing
the
SDK
.
.
.
.
. 13
SDKcomponents . . . 13
InstallingtheSDK . . . 14
OtherwaystoinstalltheSDK . . . 15
UninstallingtheSDK . . . 16
Otherscripttasksandoptions . . . 16
RPMsinSDK. . . 17
InstallingtheEclipseIDEforCell/B.E. . . . 18
Appendix
A.
Notices
.
.
.
.
.
.
.
.
. 21
Editionnotice . . . 23
Trademarks . . . 24
Appendix
B.
Related
documentation
.
. 25
Glossary
.
.
.
.
.
.
.
.
.
.
.
.
.
. 27
Index
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 31
Preface
TheSoftwareDevelopmentKit2.1(SDK)fortheCellBroadbandEngine™
(Cell/B.E.™)isacompletepackageof toolstoenable youtoprogramapplications ontheCell/B.E.Processor.TheSDK iscomposedofdevelopment toolchains, software librariesandsamplesourcefiles,asystemsimulator, andaLinux® kernel, all ofwhichfullysupportthecapabilitiesof theCell/B.E.Allof thefilesin the SDK aredistributedasRPMpackagesexceptfortheSDKinstallscript(cellsdk). TheIBM softwareincludingtheCell/B.E. Full-SystemSimulator,XLC/C++ compiler, librariesandsamples,SynergisticProcessorUnit(SPU)timingtool, FDPR-Properformance-tuning utility,CellPerformance Counter,theEclipse IntegratedDevelopmentEnvironment(IDE)forCell/B.E.,andthecellsdkscript is locatedonthealphaWorks®Web site:
http://www.alphaworks.ibm.com/tech/cellsw
Tosimplifydownload, theIBM componentsonalphaWorksandassociated
documentationareprovidedinan ISOimage.The cellsdkinstallscriptdownloads therequiredpackagesfromtheBarcelonaSupercomputingCenter(BSC)Website. Theopensource-derived packagessuchastheGCC-basedtoolchainforthe Cell/B.E.,theLinuxkernelandsupportlibraries,and systemsupportforthe Cell/B.E. Full-SystemSimulatorislocatedontheBSCWebsite:
http://www.bsc.es/projects/deepcomputing/linuxoncell/
About
this
book
Thisbookdescribeshow toinstalltheSDKandrelatedpackages,italsoincludes informationabouthow toconfiguretheSDK.Using theSDK isdescribed ina separate manual,SDK2.1Programmer'sGuide,andthereistheCellBroadband Engine ProgrammingTutorial,whichgivesanintroductiontowritingapplications fortheCell/B.E. platform.
Eachsection ofthisbookcoversadifferenttopic:
v Chapter1,“InstallingLinuxFedoraCore6,”onpage1explainshow toinstall
theFedora Core6 Linuxoperatingsystemonthesupportedhardwareplatforms
v Chapter2,“InstallingtheSDK,”onpage13explains howtoinstalltheSDK2.1
andindividualpackages
What
is
in
the
package
TheSDK 2.1ISOimagecomeswith thefollowingitems:
v
SDK2.1InstallationGuide(thisbook)
v SDK2.1Programmer'sGuide
v CellBroadbandEngineProgrammingTutorial
v XLC/C++ compiler
v IBMFull-SystemSimulator
v SIMDmath,MASS, andMASS/Vlibraries
v Samplelibrariesandfiles
v Acollection oftoolsandutilities
v EclipseIDEforCell BroadbandEngine
New
in
this
release
SDK 2.1contains anumberof significantenhancementsoverprevious versionsof theSDKand completelyreplacestheseSDKversions. Theseenhancementsinclude:
v UpgradedLinuxkernelto2.6.20with enhancementsforpreemptivescheduling
ofSPEtasks,SPElogicalaffinitysupport,and improvedperformancevia 64KB LocalStorepagemapping.
v StandardizationonthenewSPERuntime ManagementLibrary(libspe2).The
olderand lessfunctionallibspe 1.xisbeingdeprecated inthisrelease.
v Migrationofexamplelibrariesand codetolibspe2.Amigrationguideis
providedtohelpyoumoveexistingapplicationstolibspe2.
v EnhancementsandimprovementstotheAcceleratorLibrary andFramework
(ALF)includingadditionalexamples thatuseALF.
v ImprovementsandadditionstoSIMDmath library.
v AdditionofSIMDMASSand vectorMASSlibraries forSPE.
v Additionofexamplebenchmarkingcodetomeasureand reportonthe
performanceofa representativesetofDMAoperations.
v
AddedGNUGCC, XLC/C++ compiler,andFull-SystemSimulator supportfor
anenhancedCBEA-compliantprocessorwith afullypipelined,doubleprecision SPE.
v Additionofa sampleDMAchannelprofilingtool. Supportforcyclecount
profilingofcoderunningontheSPEusingOProfile.
v AdditionoftheCellPerformance Counterutility, whichcanbe usedtomonitor
andcountcellperformanceevents.
v ImprovedPPE modelintheFull-SystemSimulator toforbetterperformance
correlationacrosstheCellBroadbandEngine.Improvedintegrationbetween Full-SystemSimulator andEclipseIDEforCellBroadband Engine.
v AdditionofLinuxman pagesforsomelibrariesandtools.
v
UpgradedtheXLC/C++compilerversionto0.8.2.
v Upgradedbinutils versionto2.18prerelease.
v UpgradedGDB versionto6.6.
v Upgradednewlib versionto1.15.0.
Supported
platforms
Cell/B.E. applicationscanbe developedonthefollowingplatforms:
v x86 v x86-64 v 64-bitPowerPC ®(PPC64) v BladeCenterQS20
How
to
use
the
SDK
The SDKincludesbothPPUand SPUcompilersforallthesupportedplatforms.A Cell/B.E. applicationcanberuneithernativelyonaBladeCenterQS20orinthe IBM Full-SystemSimulator(simulator),whichissupportedonall ofthehost platforms. Forexample,itispossibletobuildanapplicationonanx86system,test underthesimulatoronthatsystem,andthenlaterrunthesamebinarynativelyon a BladeCenterQS20.
Prerequisites
TheCell/B.E. SDKrunsinFedoraCore6,whichmustbe installedbeforeyou install theSDK,seeChapter1,“InstallingLinuxFedoraCore6,”onpage1 for details.
Note: Previousversions ofthisSDKbased onFedoraCore5 havebeen
successfullyinstalledonotherLinuxdistributions,suchas,FedoraCore5, YellowDog,Debian.Thisreleasehasonlybeentestedandcertifiedtorun onFedoraCore6.ApplicationsbuiltwithSDK 2.0shouldcontinuetowork withSDK 2.1.Howeverapplicationsbuiltwith thisreleasecannotbe runon FedoraCore4orFedoraCore5because akeyrequirementisglibcversion 2.5ornewer.
Table1 showstherecommendedminimumconfigurationoneachplatform. Table1.Configurations
System Recommendedminimumconfiguration
x86orx86-64 2GHzPentium®
4processor
PowerPC 64-bitPPCwithaclockspeedof1.42GHz. 32-bitPPCplatformsarenotsupported. BladeCenterQS20 Mustbeatrevision31orgreaterandhavea
minimumfirmwarelevelofFW6.14.Eor later(see“Checkingthefirmwareversion” onpage7).
All systemsmust have:
v
Harddiskspace: 5GB(minimum)toinstallthesourcepackage andthe
accompanyingdevelopmenttools
v 1GBRAM(minimum)onthehostsystem
Note: Thesimulatorrequiresthattheminimumamount ofRAMmustbetwicethe
amountof simulatedmemory. Forexample,tosimulateasystemwith 512 MBofRAM,thehostsystemmusthaveat least1GBofRAM.
Licenses
Thesourcecode andbinariesthatare partofthetotalSDKpackageare distributed with differentlicenses.ThepackagesontheBSCWebsitearegenerallyopen sourceand useeither:
v TheGeneralPubliclicense(GPL)
http://www.gnu.org/copyleft/gpl.html
v LesserGeneralPublic(LGP)license
http://www.gnu.org/licenses/licenses.html#LGPL
Ifyouarenotalreadyfamiliarwitheither,visittheFreeSoftwareFoundation(FSF) formore information.
TheCommon PublicLicense(CPL),isusedforprojectslikeEclipseandisthe licensefortheSDKlibrariesand samplespackage.ItisthesuccessortotheIBM PublicLicense(IPL)andyoucanfind aFAQabouttheCPLlicenseontheIBM developerWorks® Website:
http://www-128.ibm.com/developerworks/library/os-cplfaq.html
The BSDlicenseisusedfortheAcceleratorFramework(ALF)and iscopyright IBM Corporation, 2006,2007.ForthegenericBSDlicense,see
http://www.opensource.org/licenses/bsd-license.php
The Full-SystemSimulator,SPUTimingtool,and CellPerformance Counterutility are licensedundertheIBM InternationalLicenseAgreementforEarly Releaseof Programs (ILAR).TheXLC/C++compilerfortheCell/B.E.processor,MASSand MASS/V libraries,andEclipseIDEforCell/B.E.arelicensedundermodifiedILAR licenses.
Getting
support
The SDK2.1issupportedthroughtheCell/B.E.architecture forumonthe developerWorksWebsiteat
http://www.ibm.com/developerworks/power/cell/
Thereisalsosupport fortheIBM Cell/B.E.Full-SystemSimulatorandXLC/C++ Compilerthrough theirindividualalphaWorksforums. Ifindoubt,startwith the CBEAforum.
ThisversionoftheCell/B.E.SDK 2.1supersedesallpreviousversions oftheSDK.
Note: TheCell/B.E.SDK isprovidedonan“as-is” basis.Wherever possible,
workaroundstoproblems willbeprovided intherespectiveforums.
Related
documentation
For afulllistofdocumentationavailableontheISOimage, refertoAppendixB. Related documentation.
Chapter
1.
Installing
Linux
Fedora
Core
6
Before youinstall theCell/B.E. SDK2.1,youmustinstall FedoraCore6. Thissectiondescribes howto:
v DownloadFedoraCore6
v InstallFedoraCore6onanx86,a PowerPC,ora BladeCenterQS20
v Installprerequisitepackages
Downloading
the
Fedora
Core
6
installation
packages
YoudownloadRedHatFedoraCore6installationpackagesfromthedownload site, http://fedora.redhat.com.Downloads areavailable as.isoimageswhichcan be usedtocreateCDsorDVDs,orasanunpacked installationtree.TheFedora Coresitealsohastheinstallationinstructions availablefordownload.
Note: Youshouldallowapproximatelythreehoursforinstallationand
configuration.
Use yourbrowserorFTPtodownloadthe.isoimages.Ifyouwishtodownloadto an existingLinuxserverorworkstation, youcanusewgettodownloadthe
unpacked installationtree.Todothis,issuethefollowingcommand: wget -r http://download.fedora.redhat.com/pub/fedora/linux/core/6/ppc/os/
Note: Dependingonyourenvironment thesimplestwayistodownloadthe*.iso
imagesandthen unpackthemonyourHTTP/FTPserverratherthan downloadingtheunpackedinstallationtree.Youdo notneed therescue image.
Copying
the
installation
files
IfyouarealreadyrunningLinux,youcansave the.isoimagestoa directoryon your serveroranotherserveronthenetwork. Youcanthen mounttheimageand copy thefilesto adirectory,whichthen becomestheinstallationsourcedirectory. Alternatively,youcanmakeCDsorDVDs andmounttheminyourCD orDVD drive.
Tocopy theinstallationfiles,do thefollowing:
1. Createtheinstallationdirectoryfromisoimages.
Theinstallationfilescanbe copiedfromthe.isoimagestoanydirectory accessibleoverthenetwork. Thefollowingexampleshowshowtomountthe .isoimagesandcopythefilestoadirectory named/srv/repos/p/FC6.
a. CreatedirectoryforeachCD:
mkdir /mnt/cd1 mkdir /mnt/cd2 b. MounttheCDs:
cd /srv/repos/p
mount -o loop FC6/FC6-ppc-disc1.iso /mnt/cd1 mount -o loop FC6/FC6-ppc-disc2.iso /mnt/cd2 c. CopyeachCD:
cp -rv /mnt/cd1/* /srv/repos/p/FC6 cp -rv /mnt/cd2/* /srv/repos/p/FC6 d. Cleanup:
umount /mnt/cd1 umount /mnt/cd2
2. Downloadall.isoimagesandburnthemonCDsorDVDs(thiscanbedone on
a differentsystem)
a. Makeadirectory wheretheCDorDVDimageswillbe copied
b. CopytheimagestothatdirectoryfromtheCDorDVD.
Installing
Fedora
Core
6
on
an
x86
or
PPC64
server
Ifyouareusinganx86orPPC64hostserver,youcaninstallFedoraCore6from theCDsorDVDandgo to“FinishingtheFedoraCore6installation”onpage8.
Installing
Fedora
Core
6
on
a
BladeCenter
QS20
Thissectiondescribes howtoinstall FedoraCore6 forPPC64ona BladeCenter QS20.
Preparing
your
BladeCenter
QS20
Ifyour BladeCenterQS20comeswithInfiniBandoption(s)alreadyinstalledunplug thePCI-Expresscable(s)ontheboardsideoruninstalltheInfiniBandoption(s), then installtheOSandthepatchedkernel,then refitthePCI-Expresscable(s) or reinstall theInfiniBandoption(s).
Fedora
Core
6
installation
overview
The installationconsistsof thefollowingsteps:
1. Setupa netbootenvironment.
2. Setupa netinstall environment.
3. Perform amanualinstallation.
The FedoraCore6 installationprocessstartsbybootinga kernelwith theinstall
initrdfromthenetworkdevice(thisistheonlysupportedinstallationmethodon a BladeCenterQS20).Theinitprocess /sbin/initstarts/sbin/loaderpromptsyou for theinstallationlanguageand installationmethod.Foranetworkinstallation, theloaderalso configuresthenetworkandqueriestheparameterfortheinstall server,beforeit downloadsthesecondarystageimageFedora/base/stage2.img
fromtheinstall server.Aftermounting thedisk image,loaderpassescontroltothe Pythonscriptanaconda.
TheAnacondainstalleristhemaininstallationprogramfor FedoraCore6 and performstheremainingstepsoftheinstallation,eithermanuallythrough
configurationscreensorautomaticallyusingthekickstart configurationfile.This includesdownloadingallRPMs, whichareselectedforinstallationfromtheinstall server.
The
network
installation
environment
Notes:
1. TheIPaddressesusedin theexamples belowareforillustrativepurposesonly.
2. Duringinstallation,youare promptedforthedirectorycontainingtheFedora
Core6installationfiles.Theillustrationsbelow show/fedoratreeasthesource containingtheinstallationfiles.Changethisto thepathcontaining your
installationfiles.
For theremainderofthis document,it isassumedthatyouhavethefollowing environment:
v ABladeCenterQS20(10.32.5.11).Thisistheinstallationtarget.
v
ADHCP/BOOTPserver(10.32.0.1).
v Aninstallserver(10.32.0.1)runninga TFTPserver,withtheinstallationsource.
Thisservermust alsobeable torunFedoraCore6if theinstallation material requiresmodification.
v AnHTTPorFTPserver(10.64.0.31)with theinstallationsource.
TheHTTP/FTP servercanresideonthesameserverastheDHCP/BOOTP/TFTP server.
Figure1shows atypicalnetworkinstallationenvironment.
Setting
up
a
netboot
environment
Copy the netboot image /srv/repos/p/FC6/images/netboot/ppc64.imgfile to the
/tftpboot directoryoftheTFTP/BOOTPserverand makesurethatitmatchesthe respectiveentryin/etc/dhcpd.conf.
blade 10.32.5.11 dchp/bootp 10.32.0.1 http 10.64.0.31
Figure1.Thenetworkinstallationenvironment
Setting
up
a
network
installation
environment
Fedora Core6 isinstalledoverthenetworkusingTFTPand FTP.
Installing
Fedora
Core
6
Toinstall FedoraCore6,dothefollowing:
1. Either insertanew harddiskintotheBladeCenterQS20,oroverwritean
existingharddiskwith anexistingLinux.
2. ConnecttheBladeCenterQS20toa serialconsole(115200,N,1,8, nohandshake)
and bootit uptothefirmware prompt.
3. Tostart theinstallation,enterthefollowing:
> netboot vnc console=hvc0
4. Select thelanguageyouwouldliketousefortheinstallation.
Welcome to Fedora Core
+---+ Choose a Language +---+
| |
| What language would you like to use |
| during the installation process? |
| | | Catalan | | Chinese(Simplified) | | Chinese(Traditional) | | Croatian | | Czech | | Danish | | Dutch | | > English | | | | +----+ | | | OK | | | +----+ | | | | | +---+
5. Select themedia typethatcontainstheinstallationpackages.
+---+ Installation Method +---+
| |
| What type of media contains the |
| packages to be installed? | | | | Local CDROM | | Hard drive | | NFS image | | > FTP | | HTTP | | | | +----+ +---+ | | | OK | | Back | | | +----+ +---+ | | | | | +---+
6. Select thenetworkdevice.Unlessyouhavea secondswitchinstalledinyour
BladeCenter®chassis,youselecteth0. +--- Networking Device ---+
| |
| You have multiple network devices on |
| this system. Which would you like to |
| install through? |
| |
| > eth0 - Unknown device 102f:01b3 |
| eth1 - Unknown device 102f:01b3 |
| | | +----+ +---+ | | | OK | | Back | | | +----+ +---+ | | | | | +---+
7. Select howyouwishtoconfigurethenetworkdevice.Becauseyouhave
bootedfromDHCP, itiseasiesttoleaveitset toDHCP.Todothis,make sure
thatUsedynamicIPconfiguration(BOOTP/DHCP) isselected.FedoraCore
6 determinesthehostnameand domainfromthedhcp/bootpserver. +---+ Configure TCP/IP +---+
| |
| [*] Use dynamic IP configuration (BOOTP/DHCP) |
| [*] Enable IPv4 support |
| [ ] Enable IPv6 support |
| | | +----+ +---+ | | | OK | | Back | | | +----+ +---+ | | | | | +---+
8. EntertheFTPsitenameandthepathwhereyouinstalledyour mediaduring
theserversetup:
+---+ HTTP Setup +---+
| |
| Please enter the following information: |
| |
| o the name or IP number of your FTP server |
| o the directory on that server containing |
| Fedora Core for your architecture |
| |
| FTP site name: 10.32.0.1_______________ |
| |
| Fedora core directory: /fedoratree____________|
| | | [*] Use non-anonymous ftp | | | | +----+ +---+ | | | OK | | Back | | | +----+ +---+ | | | | | +---+ 9. EnteranFTPaccountnameandpassword.
+--- Further FTP Setup ---+
| |
| If you are using non anonymous ftp, enter the |
| account name and password you wish to use below. |
| |
| Account name: userid__________________ |
| Password: password_________________ | | | | +----+ +---+ | | | OK | | Back | | | +----+ +---+ | | | | | +---+ 10. The followingisdisplayed:
+---+ | Running anaconda, the Fedora Core system installer - please wait... | | Framebuffer ioctl failed. Exiting. |
| Probing for video card: Unable to probe |
| Probing for monitor type: Unknown monitor |
| Probing for mouse type: No – mouse |
| No video hardware found, assuming headless |
| Starting VNC... |
| |
| WARNING!!! VNC server running with NO PASSWORD! |
| You can use the vncpassword=<password> boot option |
| if you would like to secure the server. |
| |
| The VNC server is now running. |
| Please connect to 10.32.5.11:1 to begin the install... |
| |
| Press <enter> for a shell |
| Starting graphical installation... |
+---+ 11. Starta VNCsessiononanothercomputerinthenetwork.Atthecommand
prompt of thatcomputer enter vncviewer <target IP>,where <target IP> is theaddressof theBladeCenterQS20beinginstalled,forexample,10.32.5.11:1. Continuetheinstallationprocessfromthecomputerrunningthevncviewer session, nottheBladeCenterQS20where theinstallationprocess isactually takingplace.
Rebooting
the
BladeCenter
QS20
Whentheinstallationiscomplete, rebootthesystemfromtheinstallationscreen. TheFedora Core6 Kerneldoesnotsupport allofthefeaturesof SDK2.1and shouldbe installedwith SDK2.1(seeChapter2,“InstallingtheSDK,”onpage13). Afinalrebootafter theinstallensuresthattheQS20isusingtheSDK2.1kernel.
Configuring
yum
(if
required)
Ifrequired, configurethe/etc/yum.conf filesothatitpoints totheHTTPserver. Youmust changethebaseurl entry:
[main] cachedir=/var/cache/yum debuglevel=2 logfile=/var/log/yum.log pkgpolicy=newest distroverpkg=redhat-release tolerant=1 exactarch=1 retries=20 obsoletes=1 gpgcheck=0
# PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d
/etc/yum.repos.d/fedora-core.repo
[base]
name=Fedora Core $releasever - $basearch - Base
#baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/ baseurl=http://10.64.0.31/ <<<< modify baseurl here
mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
Managing
a
BladeCenter
QS20
Thissectiondescribes howtocheckthefirmwareversion,boot, shutdown, and restart aBladeCenterQS20.
Checking
the
firmware
version
Tocheck thefirmwareversion,dooneofthefollowing:
1. AccesstheBladeCenterManagement Module.
2. SelectMonitors→ FirmwareVPD.The BladeServerFirmwareVPD window
containsthebuildidentifier,release,andrevision. or:
From theLinuxFedora Core6 commandline, runthecommand for file in `ls /proc/device-tree/openprom/*bank*`; do echo $file; cat $file; echo; echo; done
Thefollowingsampleoutputshowsthatthebladehasbeenbootedfromthe temporaryfirmware bank,whichcontainsversion 6.14.Eofthefirmware. /proc/device-tree/openprom/ibm,fw-bank T /proc/device-tree/openprom/ibm,fw-perm-bank CB1FW6147 , 06-26-2006 22:52 /proc/device-tree/openprom/ibm,fw-temp-bank CB1FW6147 , 06-26-2006 22:52
Checking
which
firmware
bank
was
booted
Tocheck iftheTEMPorPERM firmwarewasbooted,runthecommand: /proc/device-tree/openprom/ibm,fw-bank
AT indicatesaboot fromthetemporarybankand aP fromthepermanent bank.
Booting
a
BladeCenter
QS20
Toboot aBladeCenterQS20,do thefollowing:
1. OpentheBladeCenterManagement Module.
2. Settheappropriatebootdevice(network, harddisk)fortheBladeCenterQS20
byselectingBladeTasks→Configuration →BootSequence.
3. PowerontheBladeCenterQS20byselectingBladeTasks →Power/Restart→
checkmark theblade →PowerOnBlade.
Note:
v Theboot processoftheBladeCenterQS20canonlybemonitoredwith a
serialconsole(115200,N,1,8, nohandshake)connectedtotheBladeCenter QS20'sserialportonthefront bezel
v Youmightneed anull-modemcable
v
ToforcetheBladeCenterQS20intotheOpenFirmwarePromptpresss on
theserialconsoleduringtheearlystagesofthebootprocess
Recovering
from
a
bad
firmware
boot
IfLinuxdoesnotbootwith thetemporaryfirmwarelevel,youneedtoconnecta consoletothebladeand rebootusingtheManagement Module.Attheconsole, stop thefirmwareboot(press ’s’onconsole)andenterontheconsole:
> 0 set-flashside > reboot
Thisrebootsusingthepermanentfirmware.Afterit hasbooted,youcanrejectthe temporary firmware(whichcopiesthepermanentfirmwareto thetemporary location)with:
# update_flash -r
Shutting
down
and
restarting
the
BladeCenter
QS20
Alwaysshutdown andrestarta bladethathasbeenbootedtotheLinuxprompt with oneofthefollowingcommandsfromaLinuxshellontheBladeCenterQS20: shutdown -g0 -i0 -y
halt reboot
shutdown -r now
DonotusetheBlade CenterManagementModuletopowerdownor restartthe Blade (usingBlade Tasks→Power/Restart→ checkmarktheblade→ PowerOff
Blade /RestartBlade)asthiscanresultin adamagedfilesystem:theBlade
Center willpowerofftheBladeCenterQS20withoutfirstnotifyingtheoperating system.
Finishing
the
Fedora
Core
6
installation
AtthispointyoushouldhaveFedora Core6 installedand rebootedonyour machine,whichiseitheranx86, aPowerPC oraBladeCenterQS20.
Before youinstall theCell/B.E. SDK,youmust installuptothirteenother dependent packagesbefore youinstall theCell/B.E. SDK.Theactualnumberof
requiredpackagesdependsontheplatformyouare usingand whatwas already installedduring theFedora Core6 installation.
Note: AdefaultFedoraCore6installationdoesnothavealltherequiredpackages.
Therequireddependenciesarefollows:
byacc
The SDKuses BisonYACC. Toverify ifit isinstalled,runrpm –qbyacc.Theresult shouldbe similarto:
byacc-1.9-29.2.1
To getthe byaccpackage and itsdependencies,youmust do a yuminstall byacc.
flex
The SDKuses flex.Toverifyif it isinstalled,runrpm –qflex.Theresult shouldbe similarto:
flex-2.5.4a-41.fc6
To getthe flexpackage and itsdependencies, youmust do ayum install flex.
freeglut
Two ofthesampleprogramsdepend onOpenGLand requirefreeglutand
freeglut-develpackagestocompileandrunsuccessfully.Toverify ifitisinstalled, run rpm –qa | grep freeglut.The result should be similar to:
freeglt-2.4.0-4 freeglut-devel-2.4.0-4
To get thefreeglut-develpackage, youmust runyum install freeglut-devel.
Note: TheSDKrequiresthe32-bitversions ofthesepackagesforaPowerPC 64-bit
machineortheBladeCenterQS20.
gcc
TheregularFedora Core6 gccGNUcompilerisusedtobuildtwosamplesthatare runonthehostmachineratherthanonaCell/B.E.Processor.Toverify ifitis installed,runrpm –q gcc. Theresult shouldbe similar to:
gcc-4.1.1-1.fc6
To getthe gccpackageand itsdependencies, youmustdo a yum installgcc.
libXext-devel
Some oftheexamplecodeintheSDKrequires32-bitversionlibXext-devel.Make sure youdonothavethe64-bitversionona PPC64machine.Toverifyif itis installed,run:
yum list installed | grep libXext-devel
Theresult shouldbesimilarto:
libXext-devel.ppc 1.0.1-2.1 installed
To get thelibXextpackage, youmust runyum install libXext-devel.
libXmu-devel
Some oftheexamplecodeintheSDKrequires32-bitversionlibXmu-devel.Make sure youdonothavethe64-bitversionona PPC64machine.Toverifyif itis installed,run:
yum list installed | grep libXmu-devel
The resultshouldbesimilarto:
libXmu-devel.ppc 1.0.2-5 installed
To get thelibXmu package,youmust runyum install libXmu-devel.
mesa-libGLU-devel
Some oftheexamplecodeintheSDKrequires32-bitversionmesa-libGLU-devel. Make sureyouhavethe32-bitversionona PPC64machine.Toverifyif itis installed,run:
yum list installed | grep libGLU-devel
The resultshouldbesimilarto:
mesa-libGLU-devel.ppc 6.5.1-9.fc6 installed
mesa-libGLU-devel.ppc64 6.5.1-9.fc6 installed
To get themesa-libGLU package, youmustrunyum install mesa-libGLU-devel.ppc.
make
Make isusedtobuildthelibrariesandsampleprograms.Toverifyifitisinstalled, run rpm -q make. Theresult should be similarto:
make-3.80-10.2
To getthe makepackage, youmust do a yum installmake.The SDKmakefiles havealso beenupdatedtoworkwiththelatestmake-3.81.
netpbm
The Juliasetsampleneedsthenetpbmandnetpbm-develpackagesonanative PowerPC 64-bit machineand BladeCenterQS20.Toverify ifinstalleddo arpm –qa | grepnetpbm.The result shouldbe similar to:
netpbm-devel-10.34-1.fc6 netpbm-10.34-1.fc6
If these packagesarenot installed,youmust do a yum install netpbm.
perl
Perl isrequiredbyseveralpartsoftheSDK.To verifyifit isinstalled,runrpm–q perl.Theresult shouldbe similarto:
perl-5.8.8-5
To get theperl package, youmust runyuminstall perl.
rsync
rsync isusedbytheSDKinstall process.Toverify ifitisinstalled,runrpm–q rsync.Theresultshouldbesimilarto:
rsync-2.6.8-1.FC6.1
To getthe rsyncpackage anditsdependencies, youmust doa yum install rsync.
TK
The simulatorrequireslibtk8.4.so.To verifyif it isinstalled,runrpm –qtk.The result shouldbesimilarto:
Ifthetk-8.4andtcl-8.4packagesarenotinstalledyouseethefollowingmessage whenyourunthefullsystemsimulator:
systemsim-cell/run/cell/../../bin/systemsim-cell: error while loading
shared libraries: libtk8.4.so: cannot open shared object file: No such file or directory. To get thetk (andtcl) package,runyum install tk.
Note: TheSDKrequiresthe32-bitversions ofthesepackagesforaPowerPC 64-bit
machineortheBladeCenterQS20.
Updating
the
Fedora
Core
6
installation
SDK 2.1hasbeentestedwiththereleasedversion ofFedoraCore6, butithasnot been testedwith allofthelatestupdates.Considerthefollowingwhenyou upgradeyour FedoraCore6system:
v Upgradetotheminimumlevelofthedependentpackagesasdefinedinthe
previoussection.
v Upgradetheglibcpackage toatminimumversion2.5-8.
Chapter
2.
Installing
the
SDK
ThissectionassumesthatyouhaveinstalledFedoraCore6onyour hostsystem and arenowreadytoinstall theCell/B.E. SDK.ThefollowingWebsitesare relevant:
v http://www.alphaworks.ibm.com/tech/cellsw
TheIBMalphaWorkssitecontainsemergingtechnologies.Inparticular,theISO imagecontainstheIBM SourceLibrariesandSamples,theFull-SystemSimulator andtheCell/B.E.XLC/C++compiler,and theEclipseIDEforCell/B.E.Allof thesetechnologiesandassociateddocumentationcanbedownloadedatoncein anISOimage.
v http://www.bsc.es/projects/deepcomputing/linuxoncell/cbexdev.html
TheLinuxonCell/B.E.-basedsystemswebsiteat theBarcelonaSupercomputing Center(BSC)providesinformationabouthowtoenableLinuxonCell/B.E. platforms.Ithostsalloftheopensourcepatchesand binariesneededtoinstall SDK2.1.
v
http://www.ibm.com/developerworks/power/cell/
TheIBMdeveloperWorkssitecontainstechnicalarticlesandsupport forumsfor Cell/B.E.
v http://www.alphaworks.ibm.com/tech/vpa
whichcontainsaversionof theVisualPerformanceAnalyzerspecificforthe Cell/B.E.processor.
SDK
components
TheCell/B.E. SDKconsistsofaset ofRPMfilesand ascripttoinstall the appropriateRPMsforthetargetplatform.Thecomponentsareexplainedinmore detail intheSDKProgrammer’sGuide.Thetablebelow showscombinationsof platforms andcomponents:
Table2.Supportedcombinationsofplatformsandcomponents
Component x86/x86-64 PPC64 BladeCenterQS20
GNUtoolchain Mandatory Mandatory Mandatory XLC/C++compiler Mandatory Mandatory Mandatory Simulator Mandatory Mandatory Optional Systemrootimage
forsimulator
Mandatory Mandatory Optional
Linuxkernel Built-intosystem rootimage Built-intosystem rootimage Optional Cell/B.E.libraries (libspe1.2,libspe2.1, SIMDmath,MASS)
Mandatory Mandatory Mandatory
Prototypelibraries andsamples,ALF
Mandatory Mandatory Mandatory
Performancesupport librariesandutilities
SPUtimingtoolonly Mandatory Mandatory
Some componentsconsistofoneor moreRPMfilesandthedetailedlistofRPMs for eachcomponentandplatformisdescribedin“RPMsinSDK”onpage17.
Installing
the
SDK
The cellsdkshellscripthandlestheSDKinstallation.TheSDK’stoolsare primarilyinstalledin/opt/ibm,althoughsomeofthetoolchain commandsare installedintheregularpath.forexample,thespu-gcc commandisinstalledin
/usr/binona PPCmachine andin/opt/cellonanx86machine.Thesimulatoris installedin/opt/ibm/systemsim-cell,andtheSDK in/opt/ibm/cell-sdk/
prototype/.
Note: IfyouhavepreviouslyinstalledSDK2.0onFedoraCore6, youshouldfirst
uninstallSDK2.0byusingitsinstallscript withtheuninstalltask. The cellsdkscriptinstalltaskbegins byaskingyouwhetheryouhaveread the associatedlicenseagreements.Youmusttypeyes tocontinue;y isnotacceptedas confirmation. Thescriptcheckstoseewhatfeaturesmightbe neededandwhat featuresareavailable. Ifsomeof theotherinstallationfiles(fromtheBSCWebsite) are needed,theyareautomaticallydownloadedtothedirectory /tmp/cellsdk-1.1. DothefollowingtoinstalltheSDK:
1. AsrootdownloadtheSDK ISOdiskimage, CellSDK21.isofromtheCell/B.E.
SDKalphaWorks Website
http://www.alphaworks.ibm.com/tech/cellsw
2. Createa mountdirectoryandmakesurenothingelseismountedonthis
directory:
mkdir –p /mnt/cellsdk
3. Mountthediskimageonthemountdirectory:
mount –o loop CellSDK21.iso /mnt/cellsdk 4. Changedirectoryto/mnt/cellsdk/software:
cd /mnt/cellsdk/software
5. InstalltheSDKbyusingthefollowingcommandandansweranyprompts:
./cellsdk install
6. Optionally buildthesamplesand librariesandcopyintothesysrootimagefor
thesimulator:
cd /opt/ibm/cell-sdk/prototype/src ./cellsdk build
7. Changedirectorytoanydirectorywhichisnotthemountdirectoryor belowit:
cd /
8. Unmount thediskimage:
umount /mnt/cellsdk
Duringtheinstallationprocessyoumightbe askedquestions aboutwhich componentsto installorreinstall.RefertoTable2 onpage13tounderstandwhat themandatory andoptionalcomponentsare.See“OtherwaystoinstalltheSDK” onpage15forothercellsdktasks andoptionsthatallowyoutocompilethe libraries andsampleswiththeXLCcompilerorinstalltheSDK withoutprompts. The CellSDK2.1containmanpages forlibrariesintheSDK.Itisadvisableto updatethe"whatis"databasebyusingthecommand:
For moreinformationonmakewhatis,issue thecommand: man makewhatis
Youcanrunthecellsdk scriptmultipletimestoinstall orreinstallcomponents. Theinstall processalso buildsallofthelibrariesand sampleswithoutstoppingif thereisanerror.Usethefollowingcommandtokeepa logofwhatwas done during theinstallprocessincasethereisa problem:
./cellsdk install 2>&1 | tee /tmp/cellsdk-install.log
See “InstallingtheEclipseIDEforCell/B.E.”onpage18fordetailsabouthow to install andconfiguretheEclipseIDE.
Other
ways
to
install
the
SDK
Theinstallation approachdescribedin“InstallingtheSDK”onpage14maynot workinyour environment.Thissection describesseveralothermethodstoget the componentsof theSDK andinstallit.
Ifyouaccesstheinternetthrough aproxythedownloadfromtheBSCWebsite maynotwork.Asolutionistousethehttp_proxyenvironmentvariable totell
wgetabouttheproxy.Forexample,ifyouusea proxywiththeIPaddress 192.168.10.11 onport8080,settheenvironmentvariable asfollows: export http_proxy="http://username:[email protected]:8080"
Ifthis doesnotworkforyoubecauseoffirewallsorothernetworkissues downloadtheRPMfilesmanually.Youcanalsousethecellsdk scriptitselfto determineifall ofthedependentRPMshavebeenacquired.Runthefollowing commandtoseethelistof missingfiles:
./cellsdk depend
Here issomeexample outputfromthis command:
WARNING! The following required file(s) for SDK install were not found Missing file(s): ppu-gcc-c++-4.1.1-10.i686.rpm ppu-gcc-4.1.1-10.i686.rpm ppu-gdb-6.6-15.i686.rpm ppu-binutils-2.17.50-8.i686.rpm ppu-sysroot-fc6-1.noarch.rpm ppu-sysroot64-fc6-1.noarch.rpm spu-newlib-1.15.0-7.ppc.rpm spu-gcc-c++-4.1.1-9.ppc.rpm spu-gcc-4.1.1-9.ppc.rpm spu-binutils-2.17.50-8.ppc.rpm spu-gdb-6.6-12.ppc.rpm libspe2-2.1.0-0.ppc.rpm libspe2-devel-2.1.0-0.ppc.rpm libspe-1.2.2-0.ppc.rpm libspe-devel-1.2.2-0.ppc.rpm libspe2-2.1.0-0.ppc64.rpm libspe2-devel-2.1.0-0.ppc64.rpm libspe-1.2.2-0.ppc64.rpm libspe-devel-1.2.2-0.ppc64.rpm spu-newlib-1.15.0-7.i686.rpm spu-gcc-c++-4.1.1-9.i686.rpm spu-gcc-4.1.1-9.i686.rpm spu-binutils-2.17.50-8.i686.rpm spu-gdb-6.6-12.i686.rpm sysroot_image-2.1-8.noarch.rpm
Paths searched:
/mnt/cellsdk/software /tmp/cellsdk-2.1
These files may be downloaded from:
http://www.bsc.es/projects/deepcomputing/linuxoncell/cellsimulator/sdk2.1/
Would you like to attempt automatically downloading these files to /tmp/cellsdk-2.1? (y/n):n
ERROR: Missing SDK dependencies
Uninstalling
the
SDK
Touninstall theSDK,runthefollowingcommandasuserroot: ./cellsdk uninstall
Notes:
1. Toensurethatthesystemisleftina usablestate, thescriptdoesnotuninstall
thekernelonBladeCenterQS20s.Youmust changetheyabootconfiguration file(/etc/yaboot.conf)toloadadifferentkernelatthenextreboot andusethe followingcommandtouninstallthekernel:
rpm –e kernel-2.6.18-bsc4.2.
2. DonotdeleteSDKfilesordirectoriesasthiscausestheRPMdatabasetobe out
ofsync.
Other
script
tasks
and
options
The SDKscriptcellsdkimplements anumberof tasksandoptionsforthosetasks. Ifyourunthescriptwithoutanyparameters, itdisplaystheusagestatementas follows:
Usage: cellsdk <install|uninstall|depend|build|synch|verify|version> [OPTION...]
Task ’install’ and ’depend’ options:
-f, --force assume ’yes’ to all questions.
--nosim do not install the IBM Cell BE Full System Simulator
--nokernel do not install the Cell BE kernel (CBE hardware only)
Task ’uninstall’ options:
-f, --force assume ’yes’ to all questions.
Task ’build’ options:
-x, --xlc use XLC to compile the libraries and samples (x86 only) -g, --gcc use GCC to compile the libraries and samples (default)
The scriptunderstandsthefollowingtasks:
Task Description
install InstallstheSDKasexplainedin“InstallingtheSDK”onpage14
uninstall UninstallstheSDKasexplained“UninstallingtheSDK”
depend DeterminesifalloftherequiredRPMsareavailableforaninstall asexplained“OtherwaystoinstalltheSDK”onpage15
build Buildsorrebuildsthelibrariesandsamples.
Note: Amakecleanisalsodonebeforethebuild.
synch Synchronizesbetweenthe/opt/IBM/cell-sdk-2.0/prototype/ sysrootdirectoryandthesystemrootimagefortheFullSystem Simulator.SeetheSDKProgrammersGuideformoreinformation.
Task Description
version PrintstheSDKversionstring:
IBM Cell Broadband Engine SDK 2.1 (build 20070326)
Thescript alsosupportsthefollowingflags,whichare ignoredifnotspecifiedfor thetask.
Flag Description
-for--force Forcesaninstalloruninstallwithminimalprompting. -gor--gcc SelectstheGNU/GCCtoolchainonanx86machinefor
compilingthelibrariesandsamples.
--nokernel DonotinstallthekernelontheBladeCenterQS20.Bydefault installingthekernelputsitfirstintheyabootconfigurationfile anditisusedonthenextrebootoftheserver.Inmostcasesyou shouldusethiskernelasithasfullsupportfortheBladeCenter QS20.
--nosim Donotinstallthesimulator.Thisoptiononlyappliestoa BladeCenterQS20whereasimulatorisnotrequired.Otherwiseit isrecommendedthatthesimulatorisinstalledsothatitcanbe usedfordebuggingorproblemrecreation.
-xor--xlc SelectstheXLC/C++compileronanx86machineforcompiling thelibrariesandsamples.TheGNU/GCClinkerisusedtobuild thecompleteexecutable.
RPMs
in
SDK
Toget acompletelistofRPMsneededforyourplatform,runthecommand: ./cellsdk verify
ThecommandliststheRPMsandshowswhichareinstalledonyoursystem.The followingisexampleoutputisforanx86machine:
IBM Cell System Simulator:
systemsim-cell-2.1-10.i386 ... found
Cell System Simulator System Image:
sysroot_image-2.1-8.noarch ... found
GNU Compiler Toolchain:
spu-newlib-1.15.0-7.i686 ... found spu-gcc-c++-4.1.1-9.i686 ... found spu-gcc-4.1.1-9.i686 ... found spu-binutils-2.17.50-8.i686 ... found spu-gdb-6.6-12.i686 ... found ppu-gcc-c++-4.1.1-10.i686 ... found ppu-gcc-4.1.1-10.i686 ... found ppu-gdb-6.6-15.i686 ... found ppu-binutils-2.17.50-8.i686 ... found ppu-sysroot-fc6-1.noarch ... found ppu-sysroot64-fc6-1.noarch ... found IBM XL C/C++ Compilers: xlc.lib-8.2.0-20.i386 ... found xlc.cmp-8.2.0-20.i386 ... found xlcpp.lib-8.2.0-20.i386 ... found xlcpp.cmp-8.2.0-20.i386 ... found xlcpp.help-8.2.0-20.i386 ... found
IBM Cell Prototype Libraries and Samples: cell-sdk-lib-samples-2.1-2.noarch ... found cell-alf-2.1-2.noarch ... found Cell Libraries: libspe2-2.1.0-0.ppc ... found libspe2-devel-2.1.0-0.ppc ... found libspe-1.2.2-0.ppc ... found libspe-devel-1.2.2-0.ppc ... found libspe2man-2.1.0-0.noarch ... found simdmath-2.1-1.ppc ... found simdman-2.1-1.noarch ... found ppu-mass.lib-4.4.0-20.ppc ... found spu-mass.lib-4.4.0-20.ppc ... found spu-simdmath-2.1-1.ppc ... found libspe2-2.1.0-0.ppc64 ... found libspe2-devel-2.1.0-0.ppc64 ... found libspe-1.2.2-0.ppc64 ... found libspe-devel-1.2.2-0.ppc64 ... found ppu-mass.lib-4.4.0-20.ppc64 ... found
IBM Cell SPU Timing Utility:
cell-spu-timing-2.1-1.i686 ... found
INSTALLATION SUMMARY
======================================================================= IBM Cell System Simulator : Installed (1 of 1 found)
Cell System Simulator System Image : Installed (1 of 1 found)
GNU Compiler Toolchain : Installed (11 of 11 found)
IBM XL C/C++ Compilers : Installed (5 of 5 found)
IBM Cell Prototype Libraries and Samples: Installed (2 of 2 found)
Cell Libraries : Installed (15 of 15 found)
IBM Cell SPU Timing Utility : Installed (1 of 1 found)
Installing
the
Eclipse
IDE
for
Cell/B.E.
Thissectiondescribes howtoinstall theIDEforCell/B.E.
Prerequisites:TheSDKmust beinstalled,see“InstallingtheSDK”onpage14.
Note: Thefollowinginstallationistobeperformedwhileloggedinasroot.
Toinstall IDE,do thefollowing:
1. Install Java
™1.4(IBM’sorSun’s).
v ThedefaultJavaVM(GCJ)thatcomesinstalledwith FedoraCore6 isnot
sufficient.
Note: Ifyouhavea 64bitPPCmachine,youneedtoinstalland usea 32bit
Java runtimeenvironment,asEclipseforPPCiscompiledforthe 32bit architecture.
v MakesurethatyourJAVA_HOMEandyour PATHareupdatedaccordingly.
Forexample:JAVA_HOME=/usr/java/j2sdk1.4.2_13/jreand
PATH=$PATH:$JAVA_HOME/bin
TochangeyourPATHvariable,editthefile.bash_profile,whichislocated inyourhomedirectory (ex:/home/user/.bash_profile).
2. Install Eclipse3.2.
3. Install CDT3.1plug-ins.
4. Install theSDK version2.1if youhaven’tdonesoalready.
mount -o loop CellSDK21.iso /mnt/cellsdk
6. Install theEclipseIDEforCell/B.E.plug-ins usingtheupdatemanager:
a. InEclipse,clickHelp→SoftwareUpdates→ FindandInstall...
b. SelectSearchfornewfeaturestoinstall,clickNext.
c. Click NewLocalSite...
d. Goto/mnt/cellsdk/ide/com.ibm.celldt.update,andclickOK.
e. ClickFinish andfollowtheon-screeninstructions.
7. Unmount thediskimage:
umount /mnt/cellsdk
8. Configuresimulatorfornetworkaccess.Addthefilenamedcellide.rulesto
the/etc/udev/rules.ddirectory, withthefollowingcontent: KERNEL=="tun", MODE="0666"
9. SetSimulator imagestowriteable.Runthefollowingcommands:
chmod -R a+wx /opt/ibm/systemsim-cell/run/cell/linux chmod -R a+wx /opt/ibm/systemsim-cell/images/cell
10. Ensurethatyour LinuxPATHvariableincludesthefollowingpaths:
/opt/ibmcmp/xlc/8.2/bin:/opt/cell/bin:/opt/ibm/cell-sdk/prototype/bin 11. Restartyourmachine tomakesureallsettingstakeeffect
For moreinformationaboutIDEforCell/B.E.,referto theEclipseCell/B.E. IDE help section.ToaccesstheIDEhelpsection,inEclipseclick:Help→ HelpContents
→ IDEforCell BroadbandEngineSDK.
Appendix
A.
Notices
Thisinformationwasdevelopedforproductsandservices offeredintheU.S.A. Themanufacturer maynotoffertheproducts,services,orfeaturesdiscussedinthis documentinothercountries.Consultthemanufacturer’srepresentativefor
informationontheproductsandservices currentlyavailable inyourarea.Any reference tothemanufacturer’sproduct,program, orserviceisnotintended to stateorimplythatonlythatproduct,program, orservicemaybeused.Any functionallyequivalentproduct, program,orservicethatdoesnotinfringeany intellectual propertyrightofthemanufacturermaybe usedinstead.However,it is theuser’sresponsibilitytoevaluateand verifytheoperationofanyproduct, program, orservice.
Themanufacturer mayhavepatents orpendingpatentapplicationscovering subjectmatterdescribedinthisdocument.Thefurnishingof thisdocumentdoes notgiveyouanylicensetothesepatents.Youcansendlicenseinquiries,in writing,tothemanufacturer.
Thefollowingparagraphdoesnotapplyto theUnited Kingdomor anyother
country wheresuchprovisionsareinconsistentwithlocallaw:THIS
INFORMATIONISPROVIDED“ASIS”WITHOUTWARRANTY OFANYKIND, EITHEREXPRESSORIMPLIED,INCLUDING,BUTNOTLIMITED TO,THE IMPLIED WARRANTIESOFNON-INFRINGEMENT,MERCHANTABILITYOR FITNESSFORAPARTICULARPURPOSE.Somestatesdo notallowdisclaimerof express orimpliedwarrantiesincertaintransactions,therefore,this statementmay notapplytoyou.
Thisinformationcouldinclude technicalinaccuraciesortypographicalerrors. Changes areperiodicallymadetotheinformationherein;these changeswillbe incorporatedinneweditionsof thepublication.Themanufacturer maymake improvements and/orchanges intheproduct(s)and/or theprogram(s)described inthis publicationatanytimewithoutnotice.
AnyreferencesinthisinformationtoWebsitesnotownedbythemanufacturerare providedfor convenienceonlyanddo notinanymannerserveasanendorsement of thoseWebsites.Thematerialsatthose Websitesarenotpartofthematerialsfor this productand useofthoseWebsites isat yourownrisk.
Themanufacturer mayuseordistribute anyoftheinformationyousupplyinany way itbelievesappropriatewithoutincurringanyobligationtoyou.
Licenseesof thisprogramwhowishtohaveinformationaboutit forthepurpose of enabling:(i)theexchangeofinformationbetweenindependentlycreated programs andotherprograms(includingthis one)and(ii)themutualuseofthe informationwhichhasbeenexchanged,shouldcontactthemanufacturer. Such informationmaybeavailable,subjecttoappropriatetermsandconditions, includinginsomecases,paymentof afee.
Thelicensedprogramdescribedinthis informationand alllicensedmaterial available foritareprovidedbyIBMundertermsoftheIBMCustomerAgreement,
IBM InternationalProgramLicenseAgreement,IBMLicenseAgreementfor Machine Code,oranyequivalentagreementbetweenus.
Informationconcerningproductsnotproducedbythismanufacturerwasobtained fromthesuppliers ofthoseproducts,theirpublishedannouncementsorother publicly availablesources.Thismanufacturerhasnottestedthoseproductsand cannotconfirmtheaccuracyofperformance,compatibilityor anyotherclaims relatedtoproductsnotproducedbythis manufacturer.Questionsonthe
capabilitiesofproductsnotproducedbythis manufacturershouldbeaddressedto thesuppliers ofthoseproducts.
All statementsregardingthemanufacturer’sfuturedirectionorintentaresubjectto changeor withdrawalwithoutnotice,andrepresentgoalsandobjectivesonly. Thisinformationcontainsexamples ofdataandreportsusedindailybusiness operations.Toillustratethemascompletelyaspossible,theexamples includethe namesof individuals,companies,brands,and products.Allofthesenamesare fictitiousand anysimilaritytothenamesandaddressesusedbyanactualbusiness enterpriseisentirelycoincidental.
COPYRIGHT LICENSE:
Thisinformationcontainssampleapplicationprogramsinsourcelanguage,which illustrateprogramming techniquesonvariousoperatingplatforms.Youmaycopy, modify, anddistributethese sampleprogramsinanyformwithoutpaymenttothe manufacturer,forthepurposesofdeveloping,using,marketing ordistributing application programsconformingtotheapplicationprogramming interfaceforthe operatingplatformforwhichthesampleprogramsarewritten.Theseexamples havenotbeenthoroughly testedunderallconditions. Themanufacturer,therefore, cannotguaranteeorimplyreliability,serviceability,orfunction oftheseprograms. SUBJECTTOANYSTATUTORYWARRANTIESWHICHCANNOTBE
EXCLUDED,THEMANUFACTURER,ITSPROGRAMDEVELOPERSAND SUPPLIERSMAKENOWARRANTIESORCONDITIONSEITHEREXPRESSOR IMPLIED,INCLUDING BUTNOTLIMITEDTO, THEIMPLIED WARRANTIES ORCONDITIONSOFMERCHANTABILITY,FITNESSFORAPARTICULAR PURPOSE,ANDNON-INFRINGEMENT,REGARDINGTHEPROGRAMOR TECHNICALSUPPORT,IFANY.
UNDERNOCIRCUMSTANCESISTHEMANUFACTURER,ITSPROGRAM DEVELOPERSORSUPPLIERSLIABLEFORANYOFTHEFOLLOWING,EVEN IF INFORMEDOFTHEIRPOSSIBILITY:
1. LOSSOF,ORDAMAGETO,DATA;
2. SPECIAL,INCIDENTAL,ORINDIRECTDAMAGES,ORFORANY
ECONOMICCONSEQUENTIALDAMAGES;OR
3. LOSTPROFITS,BUSINESS,REVENUE,GOODWILL,ORANTICIPATED
SAVINGS.SOMEJURISDICTIONSDO NOTALLOWTHEEXCLUSIONOR LIMITATION OFINCIDENTALORCONSEQUENTIALDAMAGES,SOTHE ABOVELIMITATIONOREXCLUSIONMAYNOTAPPLYTOYOU.
Ifyouareviewingthisinformationinsoftcopy,thephotographsand color illustrations maynotappear.
Edition
notice
© CopyrightInternationalBusinessMachinesCorporation2005.Allrights
reserved.
U.S.GovernmentUsers RestrictedRights—Use,duplication,ordisclosure restricted byGSAADPScheduleContractwithIBM Corp.
Trademarks
The followingtermsaretrademarksofInternationalBusinessMachines Corporation intheUnitedStates,othercountries,orboth:
alphaWorks BladeCenter developerWorks IBM POWER™ PowerPC® PowerPC PowerPCArchitecture™
Intel®,MMX,andPentiumare trademarksof IntelCorporationintheUnited
States, othercountries,orboth.
Microsoft®,Windows®,andWindows NT® aretrademarksofMicrosoftCorporation in theUnitedStates,othercountries,orboth.
UNIX®isaregisteredtrademarkofTheOpenGroupintheUnitedStatesand othercountries.
Java andallJava-basedtrademarksandlogos aretrademarksorregistered
trademarksofSunMicrosystems,Inc.in theUnitedStates, othercountries,orboth. Linuxisa trademarkofLinusTorvaldsintheUnitedStates,othercountries,or both.
Red Hat,theRedHat“ShadowMan”logo,andall RedHat-basedtrademarksand logos aretrademarksorregisteredtrademarksofRedHat,Inc.,intheUnited Statesandothercountries.
XDRisatrademarkofRambusInc.intheUnitedStatesandothercountries. Cell BroadbandEngine andCell/B.E.aretrademarksofSonyComputer
Entertainment,Inc.,intheUnitedStates,othercountries,orbothandisusedunder licensetherefrom
Other company,product, orservicenamesmaybetrademarksorservicemarksof others.
Appendix
B.
Related
documentation
All ofthedocumentationlistedinthis sectionisavailableontheISOimage. The latest versionsofsomedocumentsmaybe availablefromthereferencedwebpages oronyour systemafterinstallingcomponentsoftheSDK.
Cell/B.E.
processor
Thereisaset oftutorialandreference documentationfortheCell/B.E.stored in theIBM®onlinetechnicallibraryat:
http://www.ibm.com/chips/techlib/techlib.nsf/products/Cell_Broadband_Engine
v CellBroadbandEngineArchitecture
v CellBroadbandEngineProgrammingHandbook
v CellBroadbandEngineRegisters
v C/C++LanguageExtensionsforCellBroadbandEngineArchitecture
v
SynergisticProcessorUnit(SPU)Instruction SetArchitecture
v SPUApplicationBinaryInterfaceSpecification
v AssemblyLanguageSpecification
v CellBroadbandEngineLinuxReference ImplementationApplicationBinaryInterface
Specification
Cell/B.E.
programming
using
the
SDK
v SDK2.1InstallationGuide
v SDK2.1Programmer’sGuide
v CellBroadbandEngineProgrammingTutorial
v
SIMDMathLibrary
v AcceleratedLibraryFrameworkProgrammer’sGuideandAPIReference
AfteryouhaveinstalledtheSDK,youcanalso findthefollowingPDFs inthe /opt/ibm/cell-sdk/prototype/docs directory:
v SDKSampleLibrarydocumentation
v IDLcompilerdocumentation
Thefollowingdocuments areavailableasdownloadsfrom:
http://www.ibm.com/chips/techlib/techlib.nsf/products/Cell_Broadband_Engine
v CellBroadbandEngineProgrammingTutorial documentation
v
SPERuntimeManagementlibrarydocumentationVersion1.2
v SPERuntimeManagementlibrarydocumentationVersion2.1
v SPERuntimeManagementlibraryVersion1.2toVersion2.0Migration Guide
IBM
XL
C/C++
Compiler
AfteryouhaveinstalledtheSDK,youcanfindthefollowingPDFsinthe /opt/ibmcmp/xlc/8.2/doc directory.
v GettingStartedwith IBMXLC/C++Compiler
v IBMXLC/C++CompilerLanguageReference
v IBMXLC/C++CompilerProgrammingGuide
v IBMXLC/C++CompilerReference
v IBMXLC/C++CompilerInstallationGuide
IBM
Full-System
Simulator
AfteryouhaveinstalledtheSDK,youcanalso findthefollowingPDFs inthe /opt/ibm/systemsim-cell/docdirectory.
v IBMFull-SystemSimulatorUsersGuide
v IBMFull-SystemSimulatorCommandReference
v PerformanceAnalysiswiththeIBM Full-SystemSimulator
v IBMFull-SystemSimulatorBogusNetHowTo
PowerPC
Base
The followingdocuments canbefoundonthedeveloperWorksWebsiteat: http://www.ibm.com/developerworks/eserver/library
v
PowerPCArchitectureBook,Version2.02
– BookI:PowerPCUser InstructionSetArchitecture
– BookII:PowerPCVirtualEnvironment Architecture
– BookIII:PowerPCOperating EnvironmentArchitecture
v PowerPCMicroprocessorFamily:Vector/SIMD MultimediaExtensionTechnology
Glossary
Thisglossary containstermsand abbreviations usedinCell/B.E. systems.
Anaconda. ThemaininstallationprogramforFedora
Core6.
AOS. Arrayofstructures.Amethodoforganizing
relateddatavalues.Alsocalledvector-acrossform.See
SOA.
atomicoperation. Asetofoperations,suchas
read-write,thatareperformedasanuninterruptedunit.
BarcelonaSupercomputingCenter. SpanishNational
SupercomputingCenter,supportingBladecenterand Linuxoncell.
BCS. SeeBarcelonaSupercomputingCenter.
BE. BroadbandEngine.
BOOTP. BootstrapProtocol.AUDPnetworkprotocol
usedbyanetworkclienttoobtainitsIPaddress automatically.
BroadbandEngine. SeeCBEA.
built-ins. AtypeofCandC++programming
languageintrinsicthatissimilartogenericintrinsics, exceptthatbuilt-insmaptomorethanoneSPU instruction.Theseintrinsicsareprefacedbyspu_.
cache. High-speedmemoryclosetoaprocessor.A
cacheusuallycontainsrecently-accesseddataor instructions,butcertaincache-controlinstructionscan lock,evict,orotherwisemodifythecachingofdataor instructions.
CBEA. CellBroadbandProcessorArchitecture.Anew
architecturethatextendsthe64-bitPowerPC
Architecture.TheCBEAandtheCellBroadbandEngine aretheresultofacollaborationbetweenSony,Toshiba, andIBM,knownasSTI,formallystartedinearly2001.
Cell/B.E.. CellBroadbandEngine.SeeCBEA.
CellBroadbandEngineLinuxtask. Ataskrunning
onthePPEandSPE.Eachsuchtaskhasoneormore LinuxthreadsandsomenumberofSPEthreads.Allthe Linuxthreadswithinthetasksharethetask’sresources, includingaccesstotheSPEthreads.
CellBroadbandEngineprogram. APPEprogram
withoneormoreembeddedSPEprograms.
CPI. Cyclesperinstruction.Averagenumberofclock
cyclestakentoperformoneCPUinstruction.
CPL. CommonPublicLicense.
Cycle-accuratesimulation. SeePerformancesimulation.
cycle. Unlessotherwisespecified,onetickofthePPE
clock.
DHCP. DynamicHostConfigurationProtocol.
DMA. DirectMemoryAccess.Atechniqueforusinga
special-purposecontrollertogeneratethesourceand destinationaddressesforamemoryorI/Otransfer.
EA. SeeEffectiveaddress.
effectiveaddress. Anaddressgeneratedorusedbya
programtoreferencememory.Amemory-management unittranslatesaneffectiveaddress(EA)toavirtual address(VA),whichitthentranslatestoarealaddress (RA)thataccessesreal(physical)memory.The maximumsizeoftheeffectiveaddressspaceis264
bytes.
FFT. FastFourierTransform.
FSF. FreeSoftwareFoundation.Organization
promotingtheuseofopen-sourcesoftwaresuchas Linux.
FTP. FileTransferProtocol.
GCC. GNUCcompiler.
gdb. GNUdebugger.Amodifiedversionofgdb,
ppu-gdb,startsaCellBroadbandEngineprogram.The
PPEcomponentrunsfirstandusessystemcalls,hidden bytheSPUprogramminglibrary,tomovetheSPU componentoftheCellBroadbandEngineprograminto thelocalstoreoftheSPUandstartitrunning.
GPL. GNUGeneralPublicLicense.Guarantees
freedomtoshare,changeanddistributefreesoftware.
GNU. GNUisNotUnix.Aprojecttodevelopfree
Unix-likeoperatingsystemssuchasLinux.
HTTP. HypertextTransferProtocol.Amethodusedto
transferorconveyinformationontheWorldWideWeb.
I/Odevice. Input/outputdevice.Fromtheviewpoint
ofsoftwareI/Odevicesexistasmemory-mapped registersthatareaccessedinmain-storagespaceby load/storeinstructions..
IDL. Interfacedefinitionlanguage.
ILAR. IBMInternationalLicenseAgreementforearly
releaseofprograms.
intrinsic. AC-languagecommand,intheformofa
functioncall,thatisaconvenientsubstituteforoneor moreinlineassembly-languageinstructions.Intrinsics maketheunderlyingISAaccessiblefromtheCand C++programminglanguages.
L1. Level-1cachememory.Theclosestcachetoa
processor,measuredinaccesstime.
L2. Level-2cachememory.Thesecond-closestcacheto
aprocessor,measuredinaccesstime.AL2cacheis typicallylargerthanaL1cache.
latency. Thetimebetweenwhenafunction(or
instruction)iscalledandwhenitreturns.Programmers oftenoptimizecodesothatfunctionsreturnasquickly aspossible;thisisreferredtoasthelow-latency approachtooptimization.Low-latencydesignsoften leavetheprocessordata-starved,andperformancecan suffer.
libspe. ASPU-threadruntimemanagementlibrary.
LIFO. LastInFirstOut.Queuetypeinwhichelements
areprocessedinreverseorderofentry.SeealsoFIFO.
Linux. Anopen-sourceUnix-likecomputeroperating
system.
LGPL. LesserGeneralPublicLicense.Similartothe
GPL,butdoeslesstoprotecttheuser’sfreedom.
localstore. The256-KBlocalstoreassociatedwith
eachSPE.Itholdsbothinstructionsanddata.
LS. Seelocalstore.
LVM. Logicalvolumemanager.Anabstractionofa
physicalharddisk.
LVMpartition. Aportionofaphysicaldrivemanaged
bytheLVM.
mainmemory. Seemainstorage.
mainstorage. Theeffective-address(EA)space.It
consistsphysicallyofrealmemory(whateveris externaltothememory-interfacecontroller,including bothvolatileandnonvolatilememory),SPULSs, memory-mappedregistersandarrays,memory-mapped I/Odevices(allI/Oismemory-mapped),andpagesof virtualmemorythatresideondisk.Itdoesnotinclude cachesorexecution-unitregisterfiles.Seealsolocal store.
makefile. Adescriptivefileusedbythemake
commandinwhichtheuserspecifies:(a)target programorlibrary,(b)rulesabouthowthetargetisto bebuilt,(c)dependencieswhich,ifupdated,require thatthetargetberebuilt.
NUMA. Non-uniformmemoryaccess.
parallelarrayform. SeeSOA.
PDF. Portabledocumentformat.
Performancesimulation. SimulationbytheIBMFull
SystemSimulatorfortheCellBroadbandEnginein whichboththefunctionalbehaviorofoperationsand thetimerequiredtoperformtheoperationsis simulated.Alsocalledcycle-accuratesimulation.
PERL. Practicalextractionandreportinglanguage.
PowerPC. OforrelatingtothePowerPCArchitectureor
themicroprocessorsthatimplementthisarchitecture.
PowerPCArchitecture. Acomputerarchitecturethatis
basedonthethirdgenerationofRISCprocessors.The PowerPCarchitecturewasdevelopedjointlybyApple, Motorola,andIBM.
PPC. SeePowerPC.
PPE. PowerPCProcessorElement.The
general-purposeprocessorintheCell.
PPSS. PowerPCProcessorStorageSubsystem.Partof
thePPE.ItoperatesathalfthefrequencyofthePPU
andincludesaL2cacheandaBusInterfaceUnit(BIU). .
PPU. PowerPCProcessorUnit.ThepartofthePPE
thatincludestheexecutionunits,memory-management unit,andL1cache.
Sandbox. Safeplaceforrunningsemi-trusted
programsorscripts.
scalar. Aninstructionoperandconsistingofasingle
value.
SDK. Softwaredevelopmenttoolkit.Acomplete
packageoftoolsforapplicationdevelopment.The Cell/B.E.SDKincludessamplesoftwarefortheCell BroadbandEngine.
SIMD. SingleInstructionMultipleData.Processingin
whichasingleinstructionoperatesonmultipledata elementsthatmakeupavectordata-type.Alsoknown asvectorprocessing.Thisstyleofprogramming implementsdata-levelparallelism.
SIMDize. Totransformscalercodetovectorcode.
SOA. Structureofarrays.Amethodoforganizing
relateddatavalues.Alsocalledparallel-arrayform.See alsoAOS.
SPE. SynergisticProcessorElement.ItincludesaSPU,
aMFC,andaLS.
SPEthread. AthreadscheduledandrunonaSPE.A
programhasoneormoreSPEthreads.Eachsuch threadhasitsownSPUlocalstore(LS),.128x128-bit registerfile,programcounter,andMFCCommand
Queues,anditcancommunicatewithotherexecution units(orwitheffective-addressmemorythroughthe MFCchannelinterface).
SPU. SynergisticProcessorUnit.ThepartofanSPE
thatexecutesinstructionsfromitslocalstore(LS).
spulet. AstandaloneSPUprogramthatismanagedby
aPPEexecutive.
taggroup. AgroupofDMAcommands.EachDMA
commandistaggedwitha5-bittaggroupidentifier. Softwarecanusethisidentifiertocheckorwaitonthe completionofallqueuedcommandsinoneormoretag groups.AllDMAcommandsexceptgetllar,putllc, andputllucareassociatedwithataggroup.
Tcl. ToolCommandLanguage.Aninterpretedscript
languageusedtodevelopGUIs,applicationprototypes, CommonGatewayInterface(CGI)scripts,andother scripts.
thread. Asequenceofinstructionsexecutedwithinthe
globalcontext(sharedmemoryspaceandotherglobal resources)ofaprocessthathascreated(spawned)the thread.Multiplethreads(includingmultipleinstances ofthesamesequenceofinstructions)canrun
simultaneouslyifeachthreadhasitsownarchitectural state(registers,programcounter,flags,andother program-visiblestate).EachSPEcansupportonlya singlethreadatanyonetime.MultipleSPEscan simultaneouslysupportmultiplethreads.ThePPE supportstwothreadsatanyonetime,withouttheneed forsoftwaretocreatethethreads.Itdoesthisby duplicatingthearchitecturalstate.
TLB. TranslationLookasideBuffer.Anon-chipcache
thattranslatesvirtualaddresses(VAs)torealaddresses (RAs).ATLBcachespage-tableentriesforthemost recentlyaccessedpages,therebyeliminatingthe necessitytoaccessthepagetablefrommemoryduring load/storeoperations.
TRE. TerrainRenderingEngine.
vector. Aninstructionoperandcontainingasetofdata
elementspackedintoaone-dimensionalarray.The elementscanbefixed-pointorfloating-pointvalues. MostVector/SIMDMultimediaExtensionandSPU SIMDinstructionsoperateonvectoroperands.Vectors arealsocalledSIMDoperandsorpackedoperands.
Vector/SIMDMultimediaExtension. TheSIMD
instructionsetofthePowerPCArchitecture,supported onthePPE..
virtualmemory. Theaddressspacecreatedusingthe
memorymanagementfacilitiesofaprocessor.
virtualstorage. Seevirtualmemory.
VNC. VirtualNetworkComputing.Adesktopsharing
systemwhichusestheRFB(RemoteFrameBuffer) protocoltoremotelycontrolanothercomputer.
workload. AsetofcodesamplesintheSDKthat
characterizestheperformanceofthearchitecture, algorithms,libraries,tools,andcompilers.
XDR. RambusXDRDRAMmemorytechnology.
xlc. TheIBMoptimizingCcompiler..
yum. YellowdogUpdater,Modified.Apackage
managerforRPM-compatibleLinuxsystems.
Glossary
Index
A
Anaconda 2B
booting 8 afterinstallation 7C
cellsdk 15 buildtask 16 dependtask 16displayingusagestatement 16 installtask 16 parameters 17 synchtask 16 uninstalltask 16 verifytask 16 versiontask 17 compiler gcc 9 configuring
sampleyumconfiguration 7
D
documentation 25 download
FedoraCore5tree 1 file 1
E
environment
fornetworkinstallation 2
F
FedoraCore5 downloading 1
finishingtheinstallation 8 installationfiles 1 installing 1 installingonBladeCenterQS20 2 installingonPPC64 2 installingonx86 2 file download 1 files
FedoraCore5installation 1 firmware
checkingwhichversion 7 freeglut 9
G
gcc 9I
IDE installing 18 initprocess 2 installingdifferentwaystoinstallSDK 15 FedoraCore5 1 freeglut-devel 9 libXext-devel 9 libXmu-devel 9 makepackage 10 mesa-libGLU-devel 10 netpbm 10 netpbm-devel 10 operatingsystem 1 overview 2 perlpackage 10 rsync 10 starting 4 tclpackage 10 tkpackage 10 isoimage 1
K
kernel uninstalling 16 kickstart 2L
libXext-devel 9 libXmu-devel 9 licenses viiM
make 10 mesa-libGLU-devel 10N
netbootsettingupinstallationenvironment 3 netpbm 10
netpbm-devel 10 network
installationenvironment 2
settingupinstallationenvironment 4
O
operatingsystem installing 1P
perl 10 prerequisitesharddiskspace vii RAMforthesimulator vii RAMonhost vii
SDK vii
R
restarting BladeCenterQS20 8 RPM 17 rsync 10S
script 16 cellsdk 15 SDK components 13 howtouse vi installing 13 prerequisites vii supportedplatforms 13 SDKdocumentation 25 shuttingdown BladeCenterQS20 8 supportedplatforms viT
tk 10 trademarks 24U
uninstalling kernel 16 SDK 16Y
yumconfiguration 7Readers’
Comments
—
We’d
Like
to
Hear
from
You
CellBroadbandEngineSoftwareDevelopmentKit2.1 InstallationGuide
Version2.1
PublicationNo. SC33-8323-02
Weappreciateyourcommentsaboutthispublication.Pleasecommentonspecificerrorsoromissions,accuracy, organization,subjectmatter,orcompletenessofthisbook.Thecommentsyousendshouldpertaintoonlythe informationinthismanualorproductandthewayinwhichtheinformationispresented.
Fortechnicalquestionsandinformationaboutproductsandprices,pleasecontactyourIBMbranchoffice,your IBMbusinesspartner,oryourauthorizedremarketer.
WhenyousendcommentstoIBM,yougrantIBManonexclusiverighttouseordistributeyourcommentsinany wayitbelievesappropriatewithoutincurringanyobligationtoyou.IBMoranyotherorganizationswillonlyuse thepersonalinformationthatyousupplytocontactyouabouttheissuesthatyoustateonthisform.
Comments:
Thankyouforyoursupport.
Submityourcommentsusingoneofthesechannels:
v Sendyourcommentstotheaddressonthereversesideofthisform.
v Sendafaxtothefollowingnumber:+49-7031-16-3456
v Sendyourcommentsviae-mailto:[email protected]
IfyouwouldlikearesponsefromIBM,pleasefillinthefollowinginformation:
Name Address
CompanyorOrganization
Readers’
Comments
—
We’d
Like
to
Hear
from
You
SC33-8323-02
CutorFold AlongLine
CutorFold
FoldandTape Pleasedonotstaple FoldandTape
FoldandTape Pleasedonotstaple FoldandTape
NOPOSTAGE NECESSARY IFMAILEDINTHE UNITEDSTATES
BUSINESS
REPLY
FIRST-CLASSMAIL PERMITNO.40 ARMONK,NEWYORK POSTAGEWILLBEPAIDBYADDRESSEE
IBMDeutschlandEntwicklungGmbH Department3248
SchoenaicherStrasse220 D-71032Boeblingen
FederalRepublicofGermany