Lines Matching full:gpc

28 gv100_gr_trap_sm(struct gf100_gr *gr, int gpc, int tpc, int sm)  in gv100_gr_trap_sm()  argument
32 u32 werr = nvkm_rd32(device, TPC_UNIT(gpc, tpc, 0x730 + (sm * 0x80))); in gv100_gr_trap_sm()
33 u32 gerr = nvkm_rd32(device, TPC_UNIT(gpc, tpc, 0x734 + (sm * 0x80))); in gv100_gr_trap_sm()
40 nvkm_error(subdev, "GPC%i/TPC%i/SM%d trap: " in gv100_gr_trap_sm()
42 gpc, tpc, sm, gerr, glob, werr, warp ? warp->name : ""); in gv100_gr_trap_sm()
44 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x730 + sm * 0x80), 0x00000000); in gv100_gr_trap_sm()
45 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x734 + sm * 0x80), gerr); in gv100_gr_trap_sm()
49 gv100_gr_trap_mp(struct gf100_gr *gr, int gpc, int tpc) in gv100_gr_trap_mp() argument
51 gv100_gr_trap_sm(gr, gpc, tpc, 0); in gv100_gr_trap_mp()
52 gv100_gr_trap_sm(gr, gpc, tpc, 1); in gv100_gr_trap_mp()
64 gv100_gr_init_shader_exceptions(struct gf100_gr *gr, int gpc, int tpc) in gv100_gr_init_shader_exceptions() argument
69 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x610), 0x00000001); in gv100_gr_init_shader_exceptions()
70 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x72c + sm), 0x00000004); in gv100_gr_init_shader_exceptions()
75 gv100_gr_init_504430(struct gf100_gr *gr, int gpc, int tpc) in gv100_gr_init_504430() argument
78 nvkm_wr32(device, TPC_UNIT(gpc, tpc, 0x430), 0x403f0000); in gv100_gr_init_504430()
89 gv100_gr_nonpes_aware_tpc(struct gf100_gr *gr, u32 gpc, u32 tpc) in gv100_gr_nonpes_aware_tpc() argument
93 for (pes = 0; pes < gr->ppc_nr[gpc]; pes++) { in gv100_gr_nonpes_aware_tpc()
94 if (gr->ppc_tpc_mask[gpc][pes] & BIT(tpc)) in gv100_gr_nonpes_aware_tpc()
97 tpc_new += gr->ppc_tpc_nr[gpc][pes]; in gv100_gr_nonpes_aware_tpc()
100 temp = (BIT(tpc) - 1) & gr->ppc_tpc_mask[gpc][pes]; in gv100_gr_nonpes_aware_tpc()
115 u32 average_tpcs = 0; /* Average of # of TPCs per GPC */ in gv100_gr_scg_estimate_perf()
121 u32 gpc; in gv100_gr_scg_estimate_perf() local
134 /* Calculate pix-perf-reduction-rate per GPC and find bottleneck TPC */ in gv100_gr_scg_estimate_perf()
135 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gv100_gr_scg_estimate_perf()
136 num_tpc_mask = gpc_tpc_mask[gpc]; in gv100_gr_scg_estimate_perf()
138 if ((gpc == disable_gpc) && num_tpc_mask & BIT(disable_tpc)) { in gv100_gr_scg_estimate_perf()
149 num_tpc_gpc[gpc] = hweight32(num_tpc_mask); in gv100_gr_scg_estimate_perf()
150 average_tpcs += num_tpc_gpc[gpc]; in gv100_gr_scg_estimate_perf()
153 max_tpc_gpc = num_tpc_gpc[gpc] > max_tpc_gpc ? num_tpc_gpc[gpc] : max_tpc_gpc; in gv100_gr_scg_estimate_perf()
158 * ratio represents relative throughput of the GPC in gv100_gr_scg_estimate_perf()
160 scg_gpc_pix_perf = scale_factor * num_tpc_gpc[gpc] / gr->tpc_nr[gpc]; in gv100_gr_scg_estimate_perf()
165 for (pes = 0; pes < gr->ppc_nr[gpc]; pes++) { in gv100_gr_scg_estimate_perf()
167 num_tpc_mask = gr->ppc_tpc_mask[gpc][pes] & gpc_tpc_mask[gpc]; in gv100_gr_scg_estimate_perf()
169 if ((gpc == disable_gpc) && (num_tpc_mask & BIT(disable_tpc))) { in gv100_gr_scg_estimate_perf()
194 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gv100_gr_scg_estimate_perf()
195 diff = average_tpcs - scale_factor * num_tpc_gpc[gpc]; in gv100_gr_scg_estimate_perf()
231 u32 gpc, tpc, pes, gtpc; in gv100_gr_oneinit_sm_id() local
242 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gv100_gr_oneinit_sm_id()
243 for (pes = 0; pes < gr->ppc_nr[gpc]; pes++) in gv100_gr_oneinit_sm_id()
244 gpc_tpc_mask[gpc] |= gr->ppc_tpc_mask[gpc][pes]; in gv100_gr_oneinit_sm_id()
248 for (maxperf = -1, gpc = 0; gpc < gr->gpc_nr; gpc++) { in gv100_gr_oneinit_sm_id()
249 for_each_set_bit(tpc, &gpc_tpc_mask[gpc], gr->tpc_nr[gpc]) { in gv100_gr_oneinit_sm_id()
250 ret = gv100_gr_scg_estimate_perf(gr, gpc_tpc_mask, gpc, tpc, &perf); in gv100_gr_oneinit_sm_id()
257 gpc_table[gtpc] = gpc; in gv100_gr_oneinit_sm_id()
268 gr->sm[gtpc].gpc = gpc_table[gtpc]; in gv100_gr_oneinit_sm_id()