Team Ai
Datasetpublic

Brunobkr/llama.cpp_AlgMor24_github

ΩFFFΣLLIa • llama.cpp • AlgMor24 ██████╗ ███████╗███████╗███████╗██╗ ██╗ ██╗ █████╗ ██╔═══██╗██╔════╝██╔════╝██╔════╝██║ ██║ ██║██╔══██╗ ██║ ██║█████╗ █████╗ █████╗ ██║ ██║ ██║███████║ ██║ ██║██╔══╝ ██╔══╝ ██╔══╝ ██║ ██║ ██║██╔══██║ ╚██████╔╝██║ ██║ ███████╗███████╗███████╗██║██║ ██║ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚══════╝╚══════╝╚═╝╚═╝ ╚═╝ High-Performance LLM / VLM Inference & Autonomous Agentic Ecosystem… See the full description on the dataset page: https://huggingface.co/datasets/Brunobkr/llama.cpp_AlgMor24_github.

sourceHugging Faceupdated 2mo agoView on Hugging Face
0likes3kdownloads
queue.js294 linesDownload Raw Back to internal
1'use strict';2 3Object.defineProperty(exports, "__esModule", {4    value: true5});6exports.default = queue;7 8var _onlyOnce = require('./onlyOnce.js');9 10var _onlyOnce2 = _interopRequireDefault(_onlyOnce);11 12var _setImmediate = require('./setImmediate.js');13 14var _setImmediate2 = _interopRequireDefault(_setImmediate);15 16var _DoublyLinkedList = require('./DoublyLinkedList.js');17 18var _DoublyLinkedList2 = _interopRequireDefault(_DoublyLinkedList);19 20var _wrapAsync = require('./wrapAsync.js');21 22var _wrapAsync2 = _interopRequireDefault(_wrapAsync);23 24function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }25 26function queue(worker, concurrency, payload) {27    if (concurrency == null) {28        concurrency = 1;29    } else if (concurrency === 0) {30        throw new RangeError('Concurrency must not be zero');31    }32 33    var _worker = (0, _wrapAsync2.default)(worker);34    var numRunning = 0;35    var workersList = [];36    const events = {37        error: [],38        drain: [],39        saturated: [],40        unsaturated: [],41        empty: []42    };43 44    function on(event, handler) {45        events[event].push(handler);46    }47 48    function once(event, handler) {49        const handleAndRemove = (...args) => {50            off(event, handleAndRemove);51            handler(...args);52        };53        events[event].push(handleAndRemove);54    }55 56    function off(event, handler) {57        if (!event) return Object.keys(events).forEach(ev => events[ev] = []);58        if (!handler) return events[event] = [];59        events[event] = events[event].filter(ev => ev !== handler);60    }61 62    function trigger(event, ...args) {63        events[event].forEach(handler => handler(...args));64    }65 66    var processingScheduled = false;67    function _insert(data, insertAtFront, rejectOnError, callback) {68        if (callback != null && typeof callback !== 'function') {69            throw new Error('task callback must be a function');70        }71        q.started = true;72 73        var res, rej;74        function promiseCallback(err, ...args) {75            // we don't care about the error, let the global error handler76            // deal with it77            if (err) return rejectOnError ? rej(err) : res();78            if (args.length <= 1) return res(args[0]);79            res(args);80        }81 82        var item = q._createTaskItem(data, rejectOnError ? promiseCallback : callback || promiseCallback);83 84        if (insertAtFront) {85            q._tasks.unshift(item);86        } else {87            q._tasks.push(item);88        }89 90        if (!processingScheduled) {91            processingScheduled = true;92            (0, _setImmediate2.default)(() => {93                processingScheduled = false;94                q.process();95            });96        }97 98        if (rejectOnError || !callback) {99            return new Promise((resolve, reject) => {100                res = resolve;101                rej = reject;102            });103        }104    }105 106    function _createCB(tasks) {107        return function (err, ...args) {108            numRunning -= 1;109 110            for (var i = 0, l = tasks.length; i < l; i++) {111                var task = tasks[i];112 113                var index = workersList.indexOf(task);114                if (index === 0) {115                    workersList.shift();116                } else if (index > 0) {117                    workersList.splice(index, 1);118                }119 120                task.callback(err, ...args);121 122                if (err != null) {123                    trigger('error', err, task.data);124                }125            }126 127            if (numRunning <= q.concurrency - q.buffer) {128                trigger('unsaturated');129            }130 131            if (q.idle()) {132                trigger('drain');133            }134            q.process();135        };136    }137 138    function _maybeDrain(data) {139        if (data.length === 0 && q.idle()) {140            // call drain immediately if there are no tasks141            (0, _setImmediate2.default)(() => trigger('drain'));142            return true;143        }144        return false;145    }146 147    const eventMethod = name => handler => {148        if (!handler) {149            return new Promise((resolve, reject) => {150                once(name, (err, data) => {151                    if (err) return reject(err);152                    resolve(data);153                });154            });155        }156        off(name);157        on(name, handler);158    };159 160    var isProcessing = false;161    var q = {162        _tasks: new _DoublyLinkedList2.default(),163        _createTaskItem(data, callback) {164            return {165                data,166                callback167            };168        },169        *[Symbol.iterator]() {170            yield* q._tasks[Symbol.iterator]();171        },172        concurrency,173        payload,174        buffer: concurrency / 4,175        started: false,176        paused: false,177        push(data, callback) {178            if (Array.isArray(data)) {179                if (_maybeDrain(data)) return;180                return data.map(datum => _insert(datum, false, false, callback));181            }182            return _insert(data, false, false, callback);183        },184        pushAsync(data, callback) {185            if (Array.isArray(data)) {186                if (_maybeDrain(data)) return;187                return data.map(datum => _insert(datum, false, true, callback));188            }189            return _insert(data, false, true, callback);190        },191        kill() {192            off();193            q._tasks.empty();194        },195        unshift(data, callback) {196            if (Array.isArray(data)) {197                if (_maybeDrain(data)) return;198                return data.map(datum => _insert(datum, true, false, callback));199            }200            return _insert(data, true, false, callback);201        },202        unshiftAsync(data, callback) {203            if (Array.isArray(data)) {204                if (_maybeDrain(data)) return;205                return data.map(datum => _insert(datum, true, true, callback));206            }207            return _insert(data, true, true, callback);208        },209        remove(testFn) {210            q._tasks.remove(testFn);211        },212        process() {213            // Avoid trying to start too many processing operations. This can occur214            // when callbacks resolve synchronously (#1267).215            if (isProcessing) {216                return;217            }218            isProcessing = true;219            while (!q.paused && numRunning < q.concurrency && q._tasks.length) {220                var tasks = [],221                    data = [];222                var l = q._tasks.length;223                if (q.payload) l = Math.min(l, q.payload);224                for (var i = 0; i < l; i++) {225                    var node = q._tasks.shift();226                    tasks.push(node);227                    workersList.push(node);228                    data.push(node.data);229                }230 231                numRunning += 1;232 233                if (q._tasks.length === 0) {234                    trigger('empty');235                }236 237                if (numRunning === q.concurrency) {238                    trigger('saturated');239                }240 241                var cb = (0, _onlyOnce2.default)(_createCB(tasks));242                _worker(data, cb);243            }244            isProcessing = false;245        },246        length() {247            return q._tasks.length;248        },249        running() {250            return numRunning;251        },252        workersList() {253            return workersList;254        },255        idle() {256            return q._tasks.length + numRunning === 0;257        },258        pause() {259            q.paused = true;260        },261        resume() {262            if (q.paused === false) {263                return;264            }265            q.paused = false;266            (0, _setImmediate2.default)(q.process);267        }268    };269    // define these as fixed properties, so people get useful errors when updating270    Object.defineProperties(q, {271        saturated: {272            writable: false,273            value: eventMethod('saturated')274        },275        unsaturated: {276            writable: false,277            value: eventMethod('unsaturated')278        },279        empty: {280            writable: false,281            value: eventMethod('empty')282        },283        drain: {284            writable: false,285            value: eventMethod('drain')286        },287        error: {288            writable: false,289            value: eventMethod('error')290        }291    });292    return q;293}294module.exports = exports.default;
Brunobkr/llama.cpp_AlgMor24_github · Team Ai