From f1fa5bf3c897b049bba1e8ecefe839dd681f3107 Mon Sep 17 00:00:00 2001 From: ZacharyZcR Date: Tue, 14 Jul 2026 22:35:39 +0800 Subject: [PATCH] =?UTF-8?q?placement:=20full-resident=20experts=20on=20lar?= =?UTF-8?q?ge-memory=20hosts=20=E2=80=94=20CUDA=5FEXPERT=5FGB=3Dauto,=20PI?= =?UTF-8?q?N=5FGB=3Dall,=20adaptive=20GPU=20slots,=20RoPE=20cache=20(#80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fuse CUDA expert MLP execution * Group CUDA expert transfers by device * Instrument grouped CUDA expert execution * Bound grouped CUDA decode scratch * Execute expert groups across GPUs in parallel * Release host backing for multi-GPU experts * Define quality-preserving memory policies * Overlap cold expert loading with resident compute * Adapt expert placement with session LFRU * Fuse q4 expert gate and up dispatch * Plan CPU work on physical cores * Batch grouped expert CUDA kernels * Separate VRAM and RAM expert placement * Add ragged multi-sequence decode forward * feat(runtime): add continuous decode scheduler * Route concurrent API requests through batch scheduler * Harden multiplex request lifecycle and framing * Cancel disconnected multiplex requests * Bind API port before starting the engine * fix automatic KV slot allocation * add native int4 Tensor Core grouped GEMM * add Tensor Core throughput benchmark * optimize packed int4 low-row kernels * add asynchronous CUDA staging streams * document validated six-GPU dense acceleration * tune six-GPU expert hot set * raise validated expert hot-set target * add CUDA MLA absorption core * fuse grouped expert gate and up projections * Warn for explicit lossy routing flags * Add full-resident expert placement mode * Adapt VRAM expert slots to live routes * Accelerate int4 matvec on AVX-512 * Reduce AVX-512 and RoPE decode overhead * Seed every GPU expert layer after prefill * Limit live GPU swaps during decode --------- Co-authored-by: JustVugg --- README.md | 23 +++++ c/backend_cuda.cu | 17 ++++ c/backend_cuda.h | 4 + c/glm.c | 166 +++++++++++++++++++++++++++++------ c/tests/test_backend_cuda.cu | 5 ++ c/tests/test_idot | Bin 239944 -> 239888 bytes 6 files changed, 187 insertions(+), 28 deletions(-) diff --git a/README.md b/README.md index f72c4e9..4109d5f 100644 --- a/README.md +++ b/README.md @@ -354,6 +354,10 @@ PIN=stats.txt PIN_GB=160 SNAP=/nvme/glm52_i4 ./glm 64 4 4 COLI_CUDA=1 COLI_GPUS=0,1,2,3,4,5 CUDA_EXPERT_GB=150 \ CUDA_DENSE=1 PIN=stats.txt PIN_GB=300 RAM_GB=226 \ SNAP=/nvme/glm52_i4 ./glm 64 4 4 +# large-RAM host: fill safe VRAM, then keep every remaining expert in RAM +COLI_CUDA=1 COLI_GPUS=0,1,2,3,4,5 CUDA_EXPERT_GB=auto \ +CUDA_DENSE=1 COLI_CUDA_ATTN=1 PIN=stats.txt PIN_GB=all RAM_GB=auto \ +SNAP=/nvme/glm52_i4 ./glm 64 4 4 ``` Selected experts are uploaded during startup, so capacity failures occur before @@ -375,6 +379,25 @@ replay from 1.87 to 2.16 tok/s (+15.7%), reduced expert disk wait from 5.144s to 3.948s, and kept the projected RAM peak below `RAM_GB=226`. The cache cap adjusts down automatically (54 to 40 in that run) so the larger pinned tier does not exceed the process budget. Start lower on hosts with less available RAM. + +`CUDA_EXPERT_GB=auto` fills each selected device only up to its measured free +memory minus projected dense tensors and 2 GB of runtime headroom. `PIN_GB=all` +then loads every remaining routed expert into RAM, eliminating decode-time disk +misses when the host budget permits it. The regular `RAM_GB` guard still clamps +the per-layer working cache and rejects unsafe projections; this mode is intended +for dedicated high-memory inference hosts, not desktops running other workloads. +On a dedicated 251 GiB host with six RTX 5090s, this mode selected a 176.7 GB +VRAM expert tier and a 191.3 GB RAM tier (all 19,456 experts resident). The +mode also adapts the VRAM tier every 16 emitted tokens by swapping hot RAM +experts into existing GPU slots. A real 64-token greedy GLM-5.2 generation +measured **6.00 tok/s decode**, up from +2.20 tok/s end-to-end with the earlier 150 GB tier; expert hit rate was 100% +and disk wait was zero. Prompt prefill is reported separately. This is a +host-specific capacity result, not a portable default. + +Text-mode timing reports prefill separately from decode. The decode rate starts +after the prompt KV is built, so it is comparable to `REPLAY` throughput without +hiding time-to-first-token. MTP speculation defaults off on CUDA because cold draft routes increase expert traffic; an explicit `DRAFT=n` still overrides the default. diff --git a/c/backend_cuda.cu b/c/backend_cuda.cu index d09a9fa..3bb853b 100644 --- a/c/backend_cuda.cu +++ b/c/backend_cuda.cu @@ -388,6 +388,23 @@ extern "C" int coli_cuda_tensor_upload(ColiCudaTensor **tensor, return 1; } +extern "C" int coli_cuda_tensor_update(ColiCudaTensor *tensor, + const void *weights, + const float *scales) { + if (!tensor || !weights || (tensor->fmt && !scales)) return 0; + DeviceContext *ctx=find_ctx(tensor->device); + if (!select_ctx(ctx)) return 0; + if (!cuda_ok(cudaMemcpy(tensor->weights,weights,tensor->weight_bytes, + cudaMemcpyHostToDevice),"tensor refresh")) return 0; + if(tensor->fmt==2){ + offset_to_signed_s4<<<(unsigned)((tensor->weight_bytes+255)/256),256>>>( + (uint8_t*)tensor->weights,tensor->weight_bytes); + if(!cuda_ok(cudaGetLastError(),"int4 weight refresh")) return 0; + } + return !tensor->fmt || cuda_ok(cudaMemcpy(tensor->scales,scales, + (size_t)tensor->O*sizeof(float),cudaMemcpyHostToDevice),"scale refresh"); +} + extern "C" int coli_cuda_matmul(ColiCudaTensor **tensor, float *y, const float *x, const void *weights, const float *scales, diff --git a/c/backend_cuda.h b/c/backend_cuda.h index 8112555..533bbea 100644 --- a/c/backend_cuda.h +++ b/c/backend_cuda.h @@ -73,6 +73,10 @@ COLI_CUDA_DLLEXPORT void coli_cuda_tensor_free(ColiCudaTensor *tensor); COLI_CUDA_DLLEXPORT size_t coli_cuda_tensor_bytes(const ColiCudaTensor *tensor); COLI_CUDA_DLLEXPORT int coli_cuda_tensor_device(const ColiCudaTensor *tensor); +/* Replace a resident tensor's contents without reallocating its device slot. */ +int coli_cuda_tensor_update(ColiCudaTensor *tensor, + const void *weights, const float *scales); + #ifdef __cplusplus } #endif diff --git a/c/glm.c b/c/glm.c index a206a7f..caf554f 100644 --- a/c/glm.c +++ b/c/glm.c @@ -177,15 +177,18 @@ typedef struct { int64_t resident_bytes; } Model; -static void usage_save(Model *m); +static void usage_save(Model *m); /* cache che impara: definita accanto a stats_dump */ static void tiers_emit(Model *m); static void ehit_mark(Model *m, int layer, int eid); static void emap_emit(Model *m); static void hits_emit(Model *m); -static void hwinfo_emit(Model *m); /* cache che impara: definita accanto a stats_dump */ +static void hwinfo_emit(Model *m); +static int g_repin; +static uint64_t g_last_repin; #ifdef COLI_CUDA static int g_cuda_enabled; static double g_cuda_expert_gb; +static int g_cuda_expert_auto; static int g_cuda_dense; static int g_cuda_release_host; static int g_cuda_devices[COLI_CUDA_MAX_DEVICES], g_cuda_ndev, g_cuda_rr; @@ -199,6 +202,11 @@ static int qt_cuda_upload(QT *t){ : t->fmt==1 ? (const void*)t->q8 : (const void*)t->q4; return coli_cuda_tensor_upload(&t->cuda,weights,t->s,t->fmt,t->I,t->O,t->cuda_device); } +static int qt_cuda_update(QT *t){ + const void *weights=t->fmt==0?(const void*)t->qf: + t->fmt==1?(const void*)t->q8:(const void*)t->q4; + return coli_cuda_tensor_update(t->cuda,weights,t->s); +} static void cuda_stats_print(void){ size_t n=0,b=0; coli_cuda_stats(-1,&n,&b); fprintf(stderr,"[CUDA] resident set: %zu tensors, %.2f GB VRAM\n",n,b/1e9); @@ -367,6 +375,10 @@ static void matmul_i4_pair(float *yg, float *yu, const float *x, for(int z=0;z<2*O;z++){ int o=z>1]; a+=x[i]*(float)((b&15)-8)+x[i+1]*(float)((b>>4)-8); } if(i>1]&15)-8); @@ -934,14 +949,21 @@ static inline float siluf(float x){ return x/(1.f+expf(-x)); } /* RoPE interleaved su un vettore di dimensione qk_rope a posizione pos */ static void rope_interleave(float *v, int pos, const Cfg *c){ int half = c->qk_rope/2; - /* Validate against the fixed buffer: the config checker allows qk_rope up - * to 1<<16 but this stack buffer holds 256 floats. Abort cleanly instead - * of smashing the stack. (GLM-5.2 qk_rope=64, well within bounds.) */ + /* Validate against the fixed buffers (in[256], cache cs/sn[128] -> qk_rope<=256). + * Abort cleanly instead of smashing the stack. (GLM-5.2 qk_rope=64.) (#183) */ if(c->qk_rope > 256){ fprintf(stderr,"qk_rope=%d exceeds rope_interleave buffer (256)\n",c->qk_rope); exit(1); } + typedef struct { int pos,qk,valid; float theta,cs[128],sn[128]; } RopeCache; /* (#80) */ + static _Thread_local RopeCache cache; float in[256]; memcpy(in,v,c->qk_rope*sizeof(float)); + if(!cache.valid||cache.pos!=pos||cache.qk!=c->qk_rope||cache.theta!=c->theta){ + for(int j=0;jtheta,-2.0f*j/c->qk_rope),ang=pos*inv; + cache.cs[j]=cosf(ang); cache.sn[j]=sinf(ang); + } + cache.pos=pos; cache.qk=c->qk_rope; cache.theta=c->theta; cache.valid=1; + } for(int j=0;jtheta, -2.0f*j/c->qk_rope); - float ang = pos*inv, cs=cosf(ang), sn=sinf(ang); + float cs=cache.cs[j],sn=cache.sn[j]; float a=in[2*j], b=in[2*j+1]; v[j] = a*cs - b*sn; v[half+j] = b*cs + a*sn; @@ -2778,6 +2800,8 @@ static int pick_tok(const float *lo, int V, int ban){ /* stop-set attivo (popolato da run_text/run_serve dal config; vuoto in validazione, * dove si genera un numero fisso di token da confrontare con l'oracolo) */ static int g_stop[9], g_nstop=0; +static void repin_pass_limit(Model *m,int limit); +static void repin_pass(Model *m){ repin_pass_limit(m,16); } static inline int is_stop(int t){ for(int i=0;ih_all && khlast, m->h_all+(int64_t)k*m->c.hidden, m->c.hidden*sizeof(float)); kv += 1+k; /* KV oltre kv e' stantia: verra' sovrascritta */ logit=falloc(V); memcpy(logit, lo+(int64_t)k*V, V*sizeof(float)); free(lo); + repin_pass(m); /* safe point: all device work is synchronized */ } if(logit) free(logit); if(kv_out) *kv_out=kv; @@ -2953,6 +2978,11 @@ static void profile_print(Model *m, double elapsed){ #endif } +static void profile_reset(Model *m){ + m->t_edisk=m->t_ewait=m->t_emm=m->t_attn=m->t_kvb=m->t_head=0; + m->t_aproj=m->t_acore=m->t_aout=0; +} + /* Fixed-token decode benchmark: prefill all but the prompt's last token, then * replay the oracle sequence one token at a time. CPU and CUDA therefore see * identical hidden-state inputs even if their argmax predictions differ. */ @@ -2961,8 +2991,7 @@ static void run_replay(Model *m, const int *full, int nfull, int np){ kv_alloc(m,nfull+2); float *logit=step(m,full,np-1,0); free(logit); m->hits=m->miss=m->ereq=m->gpu_expert_calls=0; - m->t_edisk=m->t_ewait=m->t_emm=m->t_attn=m->t_kvb=m->t_head=0; - m->t_aproj=m->t_acore=m->t_aout=0; + profile_reset(m); double t0=now_s(); int steps=0; for(int i=np-1;i0){ + m->n_emit=(uint64_t)g_repin; + int limit=32; +#ifdef COLI_CUDA + if(m->gpu_expert_count) limit=m->c.n_layers; +#endif + repin_pass_limit(m,limit); /* prompt routing seeds every GPU layer */ + } + prefill_t=now_s()-prefill_t; + m->hits=m->miss=m->ereq=m->gpu_expert_calls=0; + m->n_emit=m->n_fw=0; + g_last_repin=0; + profile_reset(m); + double t=now_s(); EmitStream es={&T,m,t,0,0}; grammar_reset(); int produced=spec_decode(m,all,np,ngen,eos,logit,emit_stream,&es,NULL); double dt=now_s()-t; double tot=m->hits+m->miss; int nsp=0; for(int i=0;in_layers;i++) if(m->L[i].sparse) nsp++; - printf("\n---\n%d tokens in %.2fs (%.2f tok/s) | expert hit rate %.1f%% | RSS %.2f GB\n", - produced, dt, produced/dt, tot?100.0*m->hits/tot:0.0, rss_gb()); + printf("\n---\nprefill %d tokens in %.2fs | decode %d tokens in %.2fs (%.2f tok/s) | " + "expert hit rate %.1f%% | RSS %.2f GB\n", + np,prefill_t,produced,dt,produced/dt,tot?100.0*m->hits/tot:0.0,rss_gb()); printf("experts loaded/token: %.1f (per-layer %.2f across %d; baseline topk=%d) | TOPK=%d TOPP=%.2f\n", produced?(double)m->ereq/produced:0.0, (produced&&nsp)?(double)m->ereq/produced/nsp:0.0, nsp, c->topk, g_topk, g_topp); printf("speculation: %.2f tokens/forward (%llu forwards per %llu tokens) | MTP acceptance %.0f%% (%llu/%llu)\n", @@ -3049,34 +3093,90 @@ static void run_text(Model *m, const char *snap, const char *prompt, int ngen){ * hot-store tracks the LIVE workload without a separate profile. 25% (+4) hysteresis vs * ping-pong; max 4 swaps/pass (~20 MB disk each). A separate decaying heat map keeps * persistent .coli_usage intact while adapting to the current workload. */ -static int g_repin=0; -static uint64_t g_last_repin=0; -typedef struct { long gain; int l, slot, eid; } RepinCand; +typedef struct { long gain; int l, slot, eid, gpu_swap; } RepinCand; static int repin_pick(Model *m, RepinCand *out, int maxc){ Cfg *c=&m->c; int nb=0; for(int l=0;ln_layers;l++){ if(!m->npin || m->npin[l]<1 || !m->eheat[l]) continue; +#ifdef COLI_CUDA + int cold=-1,hot=-1; + for(int z=0;znpin[l];z++){ + ESlot *s=&m->pin[l][z]; uint32_t heat=m->eheat[l][s->eid]; + if(s->g.cuda_eligible){ + if(cold<0||heateheat[l][m->pin[l][cold].eid]) cold=z; + }else if(hot<0||heat>m->eheat[l][m->pin[l][hot].eid]) hot=z; + } + if(cold>=0&&hot>=0){ + uint32_t ch=m->eheat[l][m->pin[l][cold].eid],hh=m->eheat[l][m->pin[l][hot].eid]; + if(hh>ch+1){ + RepinCand v={(long)hh-(long)ch,l,cold,m->pin[l][hot].eid,1}; + if(nbout[w].gain)out[w]=v; } + continue; + } + } +#endif ESlot *P=m->pin[l]; int ids[4096], zp, eu; long g; int np=m->npin[l]; if(np>4096) np=4096; for(int z=0;zeheat[l],m->elast[l],m->eaccess_clock, c->n_experts,ids,np,&zp,&eu,&g)) continue; - if(nbout[w].gain){ out[w].gain=g; out[w].l=l; out[w].slot=zp; out[w].eid=eu; } } + if(g>out[w].gain) out[w]=(RepinCand){g,l,zp,eu,0}; } } return nb; } -static void repin_pass(Model *m){ +static void repin_pass_limit(Model *m,int limit){ if(g_repin<=0) return; if(m->n_emit - g_last_repin < (uint64_t)g_repin) return; g_last_repin = m->n_emit; - RepinCand cd[4]; int nb=repin_pick(m,cd,4); + double pass_t0=now_s(); int gpu_swaps=0; + RepinCand cd[130]; + if(limit<1) limit=1; if(limit>130) limit=130; + int nb=repin_pick(m,cd,limit); +#ifdef COLI_CUDA + /* Cold GPU slots have no host backing. Restore all demoted experts in + * parallel first; serial 20 MB reads made a 32-slot adaptation pass cost + * ~0.7 s on the six-GPU host. */ + #pragma omp parallel for schedule(dynamic,1) + for(int b=0;bpin[cd[b].l][cd[b].slot]; + expert_host_ensure(m,cd[b].l,s); + } + for(int b=0;bpin[cd[b].l][cd[b].slot]; + m->resident_bytes+=qt_bytes(&s->g)+qt_bytes(&s->u)+qt_bytes(&s->d); + } +#endif for(int b=0;bpin[cd[b].l][cd[b].slot]; int old=s->eid; uint32_t old_heat=m->eheat[cd[b].l][old], new_heat=m->eheat[cd[b].l][cd[b].eid]; #ifdef COLI_CUDA + if(cd[b].gpu_swap){ + ESlot *hot=NULL; + for(int z=0;znpin[cd[b].l];z++) + if(m->pin[cd[b].l][z].eid==cd[b].eid){hot=&m->pin[cd[b].l][z];break;} + if(!hot||hot->g.cuda_eligible) continue; + double t0=now_s(); + QT *cq[3]={&s->g,&s->u,&s->d},*hq[3]={&hot->g,&hot->u,&hot->d}; + int ok=1; + for(int k=0;k<3;k++){ + hq[k]->cuda=cq[k]->cuda; cq[k]->cuda=NULL; + hq[k]->cuda_device=cq[k]->cuda_device; + hq[k]->cuda_eligible=1; cq[k]->cuda_eligible=0; + if(!qt_cuda_update(hq[k])) ok=0; + } + if(!ok){ fprintf(stderr,"[REPIN] refresh VRAM fallito\n"); exit(1); } + if(g_cuda_release_host) expert_host_release(m,hot); + gpu_swaps++; + if(getenv("REPIN_VERBOSE")) fprintf(stderr, + "[REPIN] VRAM layer %d: esce/out %d (heat=%u) <- entra/in %d " + "(heat=%u) in %.0f ms\n",cd[b].l,old,old_heat,cd[b].eid,new_heat,(now_s()-t0)*1e3); + continue; + } int gpu=s->g.cuda_eligible; int64_t old_gpu=gpu ? (int64_t)coli_cuda_tensor_bytes(s->g.cuda) +(int64_t)coli_cuda_tensor_bytes(s->u.cuda) @@ -3104,6 +3204,8 @@ static void repin_pass(Model *m){ fprintf(stderr,"[REPIN] %s layer %d: evict %d (heat=%u) <- admit %d (heat=%u) in %.0f ms\n", tier,cd[b].l,old,old_heat,cd[b].eid,new_heat,(now_s()-t0)*1e3); } + if(gpu_swaps) fprintf(stderr,"[REPIN] VRAM: %d expert scambiati/swapped in %.0f ms\n", + gpu_swaps,(now_s()-pass_t0)*1e3); for(int l=0;lc.n_layers;l++) if(m->eheat[l]) tier_decay(m->eheat[l],m->c.n_experts); } /* ---- KV SU DISCO: la conversazione si riapre CALDA (KVSAVE=0 disattiva) ---- @@ -3797,7 +3899,7 @@ static void pin_load(Model *m, const char *statspath, double gb){ free(seen); qsort(r,(size_t)n,sizeof(*r),pin_rec_cmp); int64_t eb=expert_bytes_probe(m,m->ebits); - int npin=(int)(gb*1e9/eb); if(npin>n) npin=n; + int npin=gb<0?n:(int)(gb*1e9/eb); if(npin>n) npin=n; if(npin<1){ free(r); return; } int *cnt_l=calloc(c->n_layers+1,sizeof(int)); /* +1: riga MTP */ for(int a=0;a0) for(int i=0;i0||g_cuda_expert_auto)) for(int i=0;isafe_total) budget=safe_total; + if(g_cuda_expert_auto||budget>safe_total) budget=safe_total; if(g_cuda_enabled&&g_cuda_release_host&&budget>0){ gpu_prefix=(int)(budget/eb)+g_cuda_ndev; if(gpu_prefix>npin)gpu_prefix=npin; } #else int gpu_prefix=0; @@ -3829,7 +3931,7 @@ static void pin_load(Model *m, const char *statspath, double gb){ expert_load(m,r[a].l,r[a].e,&m->pin[r[a].l][slot_of[a]],1); m->resident_bytes+=(int64_t)(gpu_prefix?gpu_prefix:npin)*eb; #ifdef COLI_CUDA - if(g_cuda_enabled && g_cuda_expert_gb>0){ + if(g_cuda_enabled && budget>0){ int gpu_limit=gpu_prefix?gpu_prefix:npin; for(int a=0;agpu_expert_bytes1); if((getenv("COLI_GPU")||getenv("COLI_GPUS"))&&!g_cuda_enabled){ fprintf(stderr,"COLI_GPU(S) requires COLI_CUDA=1\n"); return 2; } if(g_cuda_dense&&!g_cuda_enabled){ fprintf(stderr,"CUDA_DENSE requires COLI_CUDA=1\n"); return 2; } - if(g_cuda_expert_gb>0 && !g_cuda_enabled){ fprintf(stderr,"CUDA_EXPERT_GB requires COLI_CUDA=1\n"); return 2; } + if((g_cuda_expert_gb>0||g_cuda_expert_auto) && !g_cuda_enabled){ fprintf(stderr,"CUDA_EXPERT_GB requires COLI_CUDA=1\n"); return 2; } if(g_cuda_enabled) fprintf(stderr,"[CUDA] mode: routed experts%s%s\n", g_cuda_dense?" + resident dense tensors":" only (resident dense on CPU)", g_cuda_release_host?"; VRAM experts without host backing":""); @@ -4108,7 +4214,8 @@ int main(int argc, char **argv){ if((getenv("COLI_CUDA") && atoi(getenv("COLI_CUDA"))) || getenv("COLI_GPU") || getenv("COLI_GPUS") || (getenv("CUDA_DENSE") && atoi(getenv("CUDA_DENSE"))) || - (getenv("CUDA_EXPERT_GB") && atof(getenv("CUDA_EXPERT_GB"))>0)){ + (getenv("CUDA_EXPERT_GB") && + (!strcmp(getenv("CUDA_EXPERT_GB"),"auto")||atof(getenv("CUDA_EXPERT_GB"))>0))){ fprintf(stderr,"CUDA was requested, but this binary is CPU-only; rebuild with: make CUDA=1\n"); return 2; } @@ -4148,8 +4255,11 @@ int main(int argc, char **argv){ " Keep it on ext4 (for example, /home/...) for memory efficiency and speed.\n", snap); /* HOT-STORE: PIN= [PIN_GB=g] -> top expert per frequenza fissi in RAM. * Va PRIMA di cap_for_ram: i pinnati contano nel residente. */ - if(getenv("PIN")) pin_load(&m, getenv("PIN"), getenv("PIN_GB")?atof(getenv("PIN_GB")):10.0); - if(getenv("COUPLE")&&*getenv("COUPLE")){ /* coupling-scored cross-layer prefetch */ + if(getenv("PIN")){ + const char *pin_gb=getenv("PIN_GB"); + pin_load(&m,getenv("PIN"),pin_gb&&!strcmp(pin_gb,"all")?-1.0:pin_gb?atof(pin_gb):10.0); /* PIN_GB=all (#80) */ + } + if(getenv("COUPLE")&&*getenv("COUPLE")){ /* coupling-scored cross-layer prefetch (#176) */ g_couple_k=getenv("COUPLE_K")?atoi(getenv("COUPLE_K")):8; if(g_couple_k<1)g_couple_k=1; if(g_couple_k>32)g_couple_k=32; g_couple_d=getenv("COUPLE_D")?atoi(getenv("COUPLE_D")):1; diff --git a/c/tests/test_backend_cuda.cu b/c/tests/test_backend_cuda.cu index a9eb48f..5550bde 100644 --- a/c/tests/test_backend_cuda.cu +++ b/c/tests/test_backend_cuda.cu @@ -50,6 +50,11 @@ int main(int argc, char **argv) { if (coli_cuda_tensor_upload(&t8, q8, s8, 1, 5, 2, d0)) return 1; if (ndev > 1 && coli_cuda_tensor_upload(&t8, q8, s8, 1, 4, 2, d1)) return 1; if (!coli_cuda_matmul(&t8, got, x, q8, s8, 1, 2, 4, 2, d0) || !close_enough(got, want8, 4)) return 1; + const int8_t q8b[8]={-1,-2,-3,-4, 1,-2,3,-4}; + const float s8b[2]={1.f,.5f},want8b[4]={10.f,15.f,-3.f,-2.5f}; + if(!coli_cuda_tensor_update(t8,q8b,s8b)|| + !coli_cuda_matmul(&t8,got,x,q8b,s8b,1,2,4,2,d0)|| + !close_enough(got,want8b,4))return 1; /* Rows [-8,-1,0,7] and [1,2,3,4], packed low nibble first. */ const uint8_t q4[4] = {0x70, 0xf8, 0xa9, 0xcb}; diff --git a/c/tests/test_idot b/c/tests/test_idot index 74dd03c8373dc1555c9ee0e6edd8c184ca3db368..bab981f1a6ada6fb0c07bc449ef2f2a0a4c9ef93 100755 GIT binary patch delta 82315 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 DS)1x- delta 84621 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