@hoff97/tensor-js
Version:
PyTorch like deep learning inferrence library
45 lines (44 loc) • 1.44 kB
TypeScript
import REGL, { Framebuffer2D, Regl } from 'regl';
import { OrderedDict } from '../../util/datastructs/types';
import { DTypeGpu } from './interface';
export interface MemoryEntry {
width: number;
height: number;
size: number;
frameBuffer: Framebuffer2D;
dtype: DTypeGpu;
id: number;
}
export interface Size {
width: number;
height: number;
}
export declare const colorType: {
float32: string;
float16: string;
int32: string;
int16: string;
int8: string;
uint32: string;
uint16: string;
uint8: string;
};
export declare class GPUMemoryAllocator {
private orderedDictConstructor;
private trees;
private entryId;
private regl;
private maxSizeFactor;
totalAllocations: number;
constructor(regl: Regl, orderedDictConstructor: () => OrderedDict<number, MemoryEntry>, maxSizeFactor?: number);
getColorType(dtype: DTypeGpu): string;
dtypeGroup(dtype: DTypeGpu): "float32" | "float16";
allocate(size: number, dtype: DTypeGpu): MemoryEntry;
getAllocationDimensions(size: number, dtype: DTypeGpu): Size;
deallocate(entry: MemoryEntry): void;
allocateTexture(values: number[], dtype: DTypeGpu): MemoryEntry;
allocateOfDimensions(width: number, height: number, dtype: DTypeGpu): MemoryEntry;
allocateFramebuffer(texture: REGL.Texture2D, dtype: DTypeGpu): MemoryEntry;
private getTextureDims;
getNumEntries(): number;
}