MCPcopy Index your code
hub / github.com/tensorflow/tfjs / getQueryTime

Method getQueryTime

tfjs-backend-webgpu/src/backend_webgpu.ts:997–1027  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

995 }
996
997 async getQueryTime(): Promise<number> {
998 if (!this.supportTimestampQuery) {
999 return 0;
1000 }
1001
1002 if (this.queryResolveBuffer == null) {
1003 this.queryResolveBuffer = this.bufferManager.acquireBuffer(
1004 this.querySetCount * 8,
1005 GPUBufferUsage.COPY_SRC | GPUBufferUsage.COPY_DST |
1006 GPUBufferUsage.QUERY_RESOLVE);
1007 }
1008 this.commandEncoder.resolveQuerySet(
1009 this.querySet, 0, this.querySetCount, this.queryResolveBuffer, 0);
1010
1011 const queryStagingBuffer = this.bufferManager.acquireBuffer(
1012 this.querySetCount * 8,
1013 GPUBufferUsage.MAP_READ | GPUBufferUsage.COPY_DST);
1014
1015 this.commandEncoder.copyBufferToBuffer(
1016 this.queryResolveBuffer, 0, queryStagingBuffer, 0,
1017 this.querySetCount * 8);
1018
1019 this.submitQueue();
1020
1021 await queryStagingBuffer.mapAsync(GPUMapMode.READ);
1022 const arrayBuffer = new BigUint64Array(queryStagingBuffer.getMappedRange());
1023 const time = Number(arrayBuffer[1] - arrayBuffer[0]) / 1000000;
1024 queryStagingBuffer.unmap();
1025 this.bufferManager.releaseBuffer(queryStagingBuffer);
1026 return time;
1027 }
1028
1029 shouldExecuteOnCPU(
1030 inputs: TensorInfo[],

Callers 1

recordAndSubmitMethod · 0.95

Calls 3

submitQueueMethod · 0.95
acquireBufferMethod · 0.80
releaseBufferMethod · 0.80

Tested by

no test coverage detected