summaryrefslogtreecommitdiff
path: root/apct-tests/perftests/rubidium/assets/generate_bid_using_wasm.js
diff options
context:
space:
mode:
Diffstat (limited to 'apct-tests/perftests/rubidium/assets/generate_bid_using_wasm.js')
-rw-r--r--apct-tests/perftests/rubidium/assets/generate_bid_using_wasm.js24
1 files changed, 24 insertions, 0 deletions
diff --git a/apct-tests/perftests/rubidium/assets/generate_bid_using_wasm.js b/apct-tests/perftests/rubidium/assets/generate_bid_using_wasm.js
new file mode 100644
index 000000000000..bc50d0af0954
--- /dev/null
+++ b/apct-tests/perftests/rubidium/assets/generate_bid_using_wasm.js
@@ -0,0 +1,24 @@
+function generateBid(ad, wasmModule) {
+ let input = ad.metadata.input;
+
+ const instance = new WebAssembly.Instance(wasmModule);
+
+ const memory = instance.exports.memory;
+ const input_in_memory = new Float32Array(memory.buffer, 0, 200);
+ for (let i = 0; i < input.length; ++i) {
+ input_in_memory[i] = input[i];
+ }
+ const results = [
+ instance.exports.nn_forward_model0(input_in_memory.length, input_in_memory),
+ instance.exports.nn_forward_model1(input_in_memory.length, input_in_memory),
+ instance.exports.nn_forward_model2(input_in_memory.length, input_in_memory),
+ instance.exports.nn_forward_model3(input_in_memory.length, input_in_memory),
+ instance.exports.nn_forward_model4(input_in_memory.length, input_in_memory),
+ ];
+ const bid = results.map(x => Math.max(x, 1)).reduce((x, y) => x * y);
+ return {
+ ad: 'example',
+ bid: bid,
+ render: ad.renderUrl
+ }
+} \ No newline at end of file