mirror of
https://github.com/saymrwulf/onnxruntime.git
synced 2026-06-29 03:30:52 +00:00
* Adding async fetching for webgl backend (#8951)
* Adding async fetching for webgl backend
* fix PR comments and CI failure.
* fixing a bug
* adding a flag
* Enable linking in exception throwing support library when build onnxruntime wasm. (#8973)
* Enable linking in exception throwing support library when build onnxruntime webassembly containing onnxruntime-extensions.
* Add flag in build.py to enable linking exceptions throwing library.
* Update onnxruntime-extensions document and bind custom_ops build flag with use_extensions.
* Update doc.
* Update cgmanifest.json.
Co-authored-by: Zuwei Zhao <zuzhao@microsoft.com>
* Remove document text from error message in a couple of ops (#9003)
* do not add pkg wheel entry to the index html file if it already exists (#9004)
* do not add pkg wheel entry to the index html file if it already exists
* [js/web] fix ort web e2e test (#9025)
* Fix cmake POWER10 detection
Recent commit 60c98a8 changed variable mlas_common_srcs which affects
POWER10 detection.
* Fix Where op type reduction processing (#9033)
* Update type reduction script to track Where Op's second input type.
* Clean up op_kernel_type_control.h includes.
* Use more maintainable include.
* Fix ROCm wheels CI pipeline break by installing latest protobuf from source (#9047)
* install protobuf from source
* fix rm command in Dockerfile
* fix options on rm command
* fix cd into protobuf source directory
* try again
* remove strip step
* debug list the files
* ls on /usr
* more debug
* more debug
* adjust LD_LIBRARY_PATH
* try remove protobuf before ORT build
* [js/web] a bugfix and add tests for wasm proxy worker (#9048)
* [js/web] add tests for wasm proxy worker
* fix script src override
* Set onnxruntime_DISABLE_RTTI to default OFF (#9049)
Co-authored-by: Du Li <duli1@microsoft.com>
Co-authored-by: Zuwei Zhao <4123666+Zuwei-Zhao@users.noreply.github.com>
Co-authored-by: Zuwei Zhao <zuzhao@microsoft.com>
Co-authored-by: Hariharan Seshadri <shariharan91@gmail.com>
Co-authored-by: liqun Fu <liqfu@microsoft.com>
Co-authored-by: Yulong Wang <yulongw@microsoft.com>
Co-authored-by: Rajalakshmi Srinivasaraghavan <rajis@linux.ibm.com>
Co-authored-by: Edward Chen <18449977+edgchen1@users.noreply.github.com>
Co-authored-by: Suffian Khan <sukha@microsoft.com>
Co-authored-by: Changming Sun <chasun@microsoft.com>
91 lines
2.6 KiB
TypeScript
91 lines
2.6 KiB
TypeScript
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
import {env} from 'onnxruntime-common';
|
|
import {Backend, SessionHandler} from '../backend';
|
|
import {Logger} from '../instrument';
|
|
import {Session} from '../session';
|
|
|
|
import {WebGLSessionHandler} from './webgl/session-handler';
|
|
import {WebGLContext} from './webgl/webgl-context';
|
|
import {createWebGLContext} from './webgl/webgl-context-factory';
|
|
|
|
/**
|
|
* WebGLBackend is the entry point for all WebGL opeartions
|
|
* When it starts it created the WebGLRenderingContext
|
|
* and other main framework components such as Program and Texture Managers
|
|
*/
|
|
export class WebGLBackend implements Backend {
|
|
glContext: WebGLContext;
|
|
|
|
get contextId(): 'webgl'|'webgl2'|undefined {
|
|
return env.webgl.contextId;
|
|
}
|
|
set contextId(value: 'webgl'|'webgl2'|undefined) {
|
|
env.webgl.contextId = value;
|
|
}
|
|
|
|
get matmulMaxBatchSize(): number|undefined {
|
|
return env.webgl.matmulMaxBatchSize;
|
|
}
|
|
set matmulMaxBatchSize(value: number|undefined) {
|
|
env.webgl.matmulMaxBatchSize = value;
|
|
}
|
|
|
|
get textureCacheMode(): 'initializerOnly'|'full'|undefined {
|
|
return env.webgl.textureCacheMode;
|
|
}
|
|
set textureCacheMode(value: 'initializerOnly'|'full'|undefined) {
|
|
env.webgl.textureCacheMode = value;
|
|
}
|
|
|
|
get pack(): boolean|undefined {
|
|
return env.webgl.pack;
|
|
}
|
|
set pack(value: boolean|undefined) {
|
|
env.webgl.pack = value;
|
|
}
|
|
|
|
get async(): boolean|undefined {
|
|
return env.webgl.async;
|
|
}
|
|
set async(value: boolean|undefined) {
|
|
env.webgl.async = value;
|
|
}
|
|
|
|
initialize(): boolean {
|
|
try {
|
|
this.glContext = createWebGLContext(this.contextId);
|
|
if (typeof this.matmulMaxBatchSize !== 'number') {
|
|
this.matmulMaxBatchSize = 16;
|
|
}
|
|
if (typeof this.textureCacheMode !== 'string') {
|
|
this.textureCacheMode = 'full';
|
|
}
|
|
if (typeof this.pack !== 'boolean') {
|
|
this.pack = false;
|
|
}
|
|
if (typeof this.async !== 'boolean') {
|
|
this.async = false;
|
|
}
|
|
|
|
Logger.setWithEnv(env);
|
|
|
|
Logger.verbose(
|
|
'WebGLBackend',
|
|
`Created WebGLContext: ${typeof this.glContext} with matmulMaxBatchSize: ${
|
|
this.matmulMaxBatchSize}; textureCacheMode: ${this.textureCacheMode}; pack: ${this.pack}; async: ${
|
|
this.async}.`);
|
|
return true;
|
|
} catch (e) {
|
|
Logger.warning('WebGLBackend', `Unable to initialize WebGLBackend. ${e}`);
|
|
return false;
|
|
}
|
|
}
|
|
createSessionHandler(context: Session.Context): SessionHandler {
|
|
return new WebGLSessionHandler(this, context);
|
|
}
|
|
dispose(): void {
|
|
this.glContext.dispose();
|
|
}
|
|
}
|