10 likes | 115 Views
Data.
E N D
Data #define N 5000 #define ITER 1int du1[N], du2[N], du3[N];int au1[N][N][2], au2[N][N][2], au3[N][N][2];int a11=1, a12=-1, a13=-1; int a21=2, a22=3, a23=-3; int a31=5, a32=-5, a33=-2; int l;/* Initialization loop */ int sig = 1;int main(){ int kx; int ky; int kz;printf("Thread:%d\n",mp_numthreads()); for(kx = 0; kx < N; kx = kx + 1) { for(ky = 0; ky < N; ky = ky + 1) { for(kz = 0; kz <= 1; kz = kz + 1) { au1[kx][ky][kz] = 1; au2[kx][ky][kz] = 1; au3[kx][ky][kz] = 1; } }} }} /* main */ Server Server Client Client Phase1 – Profiling #define N 5000 #define ITER 1int du1[N], du2[N], du3[N];int au1[N][N][2], au2[N][N][2], au3[N][N][2];int a11=1, a12=-1, a13=-1; int a21=2, a22=3, a23=-3; int a31=5, a32=-5, a33=-2; int l;/* Initialization loop */ int sig = 1;int main(){ int kx; int ky; int kz;printf("Thread:%d\n",mp_numthreads()); for(kx = 0; kx < N; kx = kx + 1) { for(ky = 0; ky < N; ky = ky + 1) { for(kz = 0; kz <= 1; kz = kz + 1) { au1[kx][ky][kz] = 1; au2[kx][ky][kz] = 1; au3[kx][ky][kz] = 1; } }} }} /* main */ Transformed Results Optimized, temperature sensitive code Phase 1 Default (performance oriented) Mapping Default Code Mapping Module Overall power density reduced mapping Thermal aware mapping Phase 2 #define N 5000 #define ITER 1int du1[N], du2[N], du3[N];int au1[N][N][2], au2[N][N][2], au3[N][N][2];int a11=1, a12=-1, a13=-1; int a21=2, a22=3, a23=-3; int a31=5, a32=-5, a33=-2; int l;/* Initialization loop */ int sig = 1;int main(){ int kx; int ky; int kz;printf("Thread:%d\n",mp_numthreads()); for(kx = 0; kx < N; kx = kx + 1) { for(ky = 0; ky < N; ky = ky + 1) { for(kz = 0; kz <= 1; kz = kz + 1) { au1[kx][ky][kz] = 1; au2[kx][ky][kz] = 1; au3[kx][ky][kz] = 1; } }} }} /* main */ ILP Module Code for(…) { } Invariant Detector Invariant Invariant Filter Invariant Invariant Invariant Invariant Invariant Invariant Loop Body for(…) { } Loop Body Code Modifier Checker Code Our approach Full duplication 100% 80% 60% Error Detection Rate 40% 20% 0% adi mxm heap-sort iter-merge bubble-sort Software solutions for challenges in embedded systemsSri Hari Krishna Narayanan, The Pennsylvania State University, USA, snarayan@cse.psu.edu Temperature crisis alleviation in CMPs and NoCs Cycle Times Temperature Sensitive Schedule + Scheduler HotSpot Chunk Sizes Phase 3 – Locality Based Scheduling Scheduler Energy Consumption Phase 2 -Temperature Sensitive Scheduling Architecture Details Temperature & Locality Sensitive Schedule + Code Generator Omega Library Phase 4 - Code Generation • Challenge : To prevent chips from overheating • Solution : • On chip temperature rises when the chip is run continuously at high power density. • Develop a schedule that allows processors to cool down in between executing portions of the task. • Such a schedule is possible because applications do • not make use of all the processor cores available. • Challenge : To prevent NoC based chips from overheating • Solution : • On chip temperature rises through high power density. • Applications typically do not use all the available processor cores • Design a task to processor mapping that reduces the power density. Theme While hardware solutions to challenges in embedded systems are very important, software can also play an important role. Software techniques to solve three important problems are presented here. Percentage of Execution during which a thermal emergency is experienced. Normalized execution time. The graphs show how the peak on chip temperature is always maintained below a preset threshold that is indicated by the solid line. Securing code semantics Soft Error Detection Traditional computing “Mobile” computing Original Code Original Code Original Results Original Results Original Results Challenge : To prevent an untrusted host from gleaning the semantics of the clients code. i.e. to prevent reverse engineering. Solution : Translation of the original code produces a new code that: a) is semantically different, b) accesses data in a different pattern, and c) whose stores take place to different locations. • Challenge : To detect single event upsets in the data caches. • Solution : • Invariants are data properties that must hold throughout the execution. • Checking to see if they hold true during execution, gives and indication of whether the execution was successful of if a soft • error occurred. “Mobile” computing with code level transformations Data Original Code Transformed Code The increase in code size due to checker code The soft error detection rate • References • Sri Hari Krishna N., M. Kandemir, R. R. Brooks, I. Kolcu. Secure Execution of Computations in Untrusted Hosts, in the proceedings of ADA-EUROPE 2006. • Sri Hari Krishna Narayanan, Mahmut Kandemir. Compiler-Directed Power Density Reduction in NoC-Based Multi-Core Designs, in the proceedings of ISQED 2006. • Sri Hari Krishna Narayanan, Guilin Chen, Mahmut Kandemir, Yuan Xie. Temperature-Sensitive Loop Parallelization for Chip Multiprocessors, in the proceedings of ICCD 2005. • Sri Hari Krishna N., Seung Woo Son, M. Kandemir, Feihui Li. Using Loop Invariants to Fight Soft Errors in Data Caches, in the proceedings of ASP-DAC 2005. Original Results