Lines Matching refs:gr

28 gv100_gr_trap_sm(struct gf100_gr *gr, int gpc, int tpc, int sm)  in gv100_gr_trap_sm()  argument
30 struct nvkm_subdev *subdev = &gr->base.engine.subdev; 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()
56 gv100_gr_init_4188a4(struct gf100_gr *gr) in gv100_gr_init_4188a4() argument
58 struct nvkm_device *device = gr->base.engine.subdev.device; in gv100_gr_init_4188a4()
64 gv100_gr_init_shader_exceptions(struct gf100_gr *gr, int gpc, int tpc) in gv100_gr_init_shader_exceptions() argument
66 struct nvkm_device *device = gr->base.engine.subdev.device; 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
77 struct nvkm_device *device = gr->base.engine.subdev.device; in gv100_gr_init_504430()
82 gv100_gr_init_419bd8(struct gf100_gr *gr) in gv100_gr_init_419bd8() argument
84 struct nvkm_device *device = gr->base.engine.subdev.device; in gv100_gr_init_419bd8()
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()
106 gv100_gr_scg_estimate_perf(struct gf100_gr *gr, unsigned long *gpc_tpc_mask, in gv100_gr_scg_estimate_perf() argument
131 if (!(num_tpc_gpc = kcalloc(gr->gpc_nr, sizeof(*num_tpc_gpc), GFP_KERNEL))) in gv100_gr_scg_estimate_perf()
135 for (gpc = 0; gpc < gr->gpc_nr; 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()
191 scg_world_perf = (scale_factor * scg_num_pes) / gr->ppc_total; in gv100_gr_scg_estimate_perf()
193 average_tpcs = scale_factor * average_tpcs / gr->gpc_nr; in gv100_gr_scg_estimate_perf()
194 for (gpc = 0; gpc < gr->gpc_nr; gpc++) { in gv100_gr_scg_estimate_perf()
202 deviation /= gr->gpc_nr; in gv100_gr_scg_estimate_perf()
227 gv100_gr_oneinit_sm_id(struct gf100_gr *gr) in gv100_gr_oneinit_sm_id() argument
234 gpc_tpc_mask = kcalloc(gr->gpc_nr, sizeof(*gpc_tpc_mask), GFP_KERNEL); in gv100_gr_oneinit_sm_id()
235 gpc_table = kcalloc(gr->tpc_total, sizeof(*gpc_table), GFP_KERNEL); in gv100_gr_oneinit_sm_id()
236 tpc_table = kcalloc(gr->tpc_total, sizeof(*tpc_table), GFP_KERNEL); in gv100_gr_oneinit_sm_id()
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()
247 for (gtpc = 0; gtpc < gr->tpc_total; gtpc++) { 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()
267 for (gtpc = 0; gtpc < gr->tpc_total; gtpc++) { in gv100_gr_oneinit_sm_id()
268 gr->sm[gtpc].gpc = gpc_table[gtpc]; in gv100_gr_oneinit_sm_id()
269 gr->sm[gtpc].tpc = tpc_table[gtpc]; in gv100_gr_oneinit_sm_id()
270 gr->sm_nr++; in gv100_gr_oneinit_sm_id()