onnxruntime/js/web/lib/wasm/jsep/webgpu/ops
Yulong Wang bb1871332f
[js/webgpu] add kernel Not and Equal (#17306)
### Description
This PR adds kernel implementation for operator "Not" and "Equal". Also
removed download cache in gpu data manager.

**Why removing download cache**
The following test case failed. ("Or" is on CPU, "Greater" and "Equal"
are on JSEP)

![image](https://github.com/microsoft/onnxruntime/assets/7679871/8d9798ad-2703-4fb9-907e-ff716c67d0b2)
after debugging, I found that both "Equal" and "Greater" are using the
same output GPU Data ID. This is because when ORT executes the graph, it
first run "Equal", allowing its shader to write into GPU Data ID 2; then
a Gpu2Cpu copy for it is issued (because currently "Or" is on CPU EP);
at this point, ORT thinks GPU Data ID=2 is free to use; so it reuse it
as output for "Greater". This means there is no allocation for output of
"Greater" kernel, and both kernel writes to GPU Data ID=2.

For gpu data manager, there will be 2 downloads from the same GPU
buffer. Previously I think this is a waste of resource so I cached the
data. But now it shoes that we need to perform 2 downloads because the
GPU data is already different. The download data cache should be
removed.


### Motivation and Context
<!-- - Why is this change required? What problem does it solve?
- If it fixes an open issue, please link to the issue here. -->
2023-08-27 19:50:17 -07:00
..
3rd-party [JS/Web] Fix ConvTranspose shader code compilation errors. (#17232) 2023-08-25 06:25:54 -07:00
argminmax.ts [js/web] [webgpu] new incides helper (#16957) 2023-08-11 11:36:59 -07:00
binary-op.ts [js/webgpu] add kernel Not and Equal (#17306) 2023-08-27 19:50:17 -07:00
common.ts [js/webgpu] add kernel Not and Equal (#17306) 2023-08-27 19:50:17 -07:00
concat.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
conv-grouped.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
conv-transpose.ts [Web/JS] Add ConvTranspose support (#16433) 2023-07-08 11:10:50 -07:00
conv.ts [js/web] [JSEP] allow passing data in kernel compute (#16621) 2023-07-07 14:27:30 -07:00
conv2d-mm.ts
expand.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
fuse-utils.ts
gather.ts [js/web] JSEP node assignment optimization (#17128) 2023-08-15 18:58:05 -07:00
gemm.ts
instance-norm.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
layer-norm.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
matmul.ts
pool.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
reduce.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
resize.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
skip-layer-norm.ts [js/webgpu] fix 2 build breaks introduced in merge (#17273) 2023-08-23 18:09:50 -07:00
slice.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
softmax.ts js/webgpu: argmax,argmin,softmax support (#16882) 2023-08-02 18:16:19 -07:00
split.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
tile.ts [js/webgpu] fix 2 build breaks introduced in merge (#17273) 2023-08-23 18:09:50 -07:00
transpose.ts [js/webgpu] make IndicesHelper implementation implicit (#17193) 2023-08-23 14:41:35 -07:00
unary-op.ts [js/webgpu] add kernel Not and Equal (#17306) 2023-08-27 19:50:17 -07:00