aws-cdk-neuronx-patterns
Version:
> [!WARNING] > This library is experimental module.
82 lines • 10.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const aws_cdk_lib_1 = require("aws-cdk-lib");
const neuronx_instance_type_1 = require("./neuronx-instance-type");
describe("Inferentia2Chips", () => {
const inferentia2Chips = new neuronx_instance_type_1.Inferentia2Chips(12);
it("chips as is number", () => {
expect(inferentia2Chips.chips).toBe(12);
});
it("NeuronxCores is twice of chips", () => {
expect(inferentia2Chips.neuronxCores).toBe(24);
});
it("AcceleratorMemory is 16 times more than Neuron core", () => {
expect(inferentia2Chips.acceleratorMemory).toStrictEqual(aws_cdk_lib_1.Size.gibibytes(384));
});
});
// https://aws.amazon.com/ec2/instance-types/inf2/?nc1=h_ls
describe("NeuronxInstanceType", () => {
const instanceTypes = [
[
neuronx_instance_type_1.NeuronxInstanceType.INF2_XLARGE,
{
instanceType: "inf2.xlarge",
vCpu: 4,
memory: aws_cdk_lib_1.Size.gibibytes(16),
acceleratorChips: {
chips: 1,
neuronxCores: 2,
acceleratorMemory: aws_cdk_lib_1.Size.gibibytes(32),
},
},
],
[
neuronx_instance_type_1.NeuronxInstanceType.INF2_8XLARGE,
{
instanceType: "inf2.8xlarge",
vCpu: 32,
memory: aws_cdk_lib_1.Size.gibibytes(128),
acceleratorChips: {
chips: 1,
neuronxCores: 2,
acceleratorMemory: aws_cdk_lib_1.Size.gibibytes(32),
},
},
],
[
neuronx_instance_type_1.NeuronxInstanceType.INF2_24XLARGE,
{
instanceType: "inf2.24xlarge",
vCpu: 96,
memory: aws_cdk_lib_1.Size.gibibytes(384),
acceleratorChips: {
chips: 6,
neuronxCores: 12,
acceleratorMemory: aws_cdk_lib_1.Size.gibibytes(192),
},
},
],
[
neuronx_instance_type_1.NeuronxInstanceType.INF2_48XLARGE,
{
instanceType: "inf2.48xlarge",
vCpu: 192,
memory: aws_cdk_lib_1.Size.gibibytes(768),
acceleratorChips: {
chips: 12,
neuronxCores: 24,
acceleratorMemory: aws_cdk_lib_1.Size.gibibytes(384),
},
},
],
];
it.each(instanceTypes)("InstanceType of %s", (instanceType, expected) => {
expect(instanceType.toString()).toBe(expected.instanceType);
expect(instanceType.vCpu).toBe(expected.vCpu);
expect(instanceType.memory).toStrictEqual(expected.memory);
expect(instanceType.acceleratorChips.chips).toBe(expected.acceleratorChips.chips);
expect(instanceType.acceleratorChips.neuronxCores).toBe(expected.acceleratorChips.neuronxCores);
expect(instanceType.acceleratorChips.acceleratorMemory).toStrictEqual(expected.acceleratorChips.acceleratorMemory);
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV1cm9ueC1pbnN0YW5jZS10eXBlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFzZS9uZXVyb254L25ldXJvbngtaW5zdGFuY2UtdHlwZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkNBQW1DO0FBQ25DLG1FQUlpQztBQUVqQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsR0FBRyxFQUFFO0lBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSx3Q0FBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsRCxFQUFFLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFO1FBQzVCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsZ0NBQWdDLEVBQUUsR0FBRyxFQUFFO1FBQ3hDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQyxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1FBQzdELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLGFBQWEsQ0FDdEQsa0JBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQ3BCLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDO0FBRUgsMkRBQTJEO0FBQzNELFFBQVEsQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUc7UUFDcEI7WUFDRSwyQ0FBbUIsQ0FBQyxXQUFXO1lBQy9CO2dCQUNFLFlBQVksRUFBRSxhQUFhO2dCQUMzQixJQUFJLEVBQUUsQ0FBQztnQkFDUCxNQUFNLEVBQUUsa0JBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUMxQixnQkFBZ0IsRUFBRTtvQkFDaEIsS0FBSyxFQUFFLENBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUM7b0JBQ2YsaUJBQWlCLEVBQUUsa0JBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2lCQUNWO2FBQzlCO1NBQ087UUFDVjtZQUNFLDJDQUFtQixDQUFDLFlBQVk7WUFDaEM7Z0JBQ0UsWUFBWSxFQUFFLGNBQWM7Z0JBQzVCLElBQUksRUFBRSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7Z0JBQzNCLGdCQUFnQixFQUFFO29CQUNoQixLQUFLLEVBQUUsQ0FBQztvQkFDUixZQUFZLEVBQUUsQ0FBQztvQkFDZixpQkFBaUIsRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7aUJBQ1Y7YUFDOUI7U0FDTztRQUNWO1lBQ0UsMkNBQW1CLENBQUMsYUFBYTtZQUNqQztnQkFDRSxZQUFZLEVBQUUsZUFBZTtnQkFDN0IsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLGtCQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztnQkFDM0IsZ0JBQWdCLEVBQUU7b0JBQ2hCLEtBQUssRUFBRSxDQUFDO29CQUNSLFlBQVksRUFBRSxFQUFFO29CQUNoQixpQkFBaUIsRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7aUJBQ1g7YUFDOUI7U0FDTztRQUNWO1lBQ0UsMkNBQW1CLENBQUMsYUFBYTtZQUNqQztnQkFDRSxZQUFZLEVBQUUsZUFBZTtnQkFDN0IsSUFBSSxFQUFFLEdBQUc7Z0JBQ1QsTUFBTSxFQUFFLGtCQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztnQkFDM0IsZ0JBQWdCLEVBQUU7b0JBQ2hCLEtBQUssRUFBRSxFQUFFO29CQUNULFlBQVksRUFBRSxFQUFFO29CQUNoQixpQkFBaUIsRUFBRSxrQkFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUM7aUJBQ1g7YUFDOUI7U0FDTztLQUNYLENBQUM7SUFDRixFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFO1FBQ3RFLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0QsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQzlDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQ2hDLENBQUM7UUFDRixNQUFNLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FDckQsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FDdkMsQ0FBQztRQUNGLE1BQU0sQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxhQUFhLENBQ25FLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FDNUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaXplIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBJQWNjZWxlcmF0b3JDaGlwcyxcbiAgSW5mZXJlbnRpYTJDaGlwcyxcbiAgTmV1cm9ueEluc3RhbmNlVHlwZSxcbn0gZnJvbSBcIi4vbmV1cm9ueC1pbnN0YW5jZS10eXBlXCI7XG5cbmRlc2NyaWJlKFwiSW5mZXJlbnRpYTJDaGlwc1wiLCAoKSA9PiB7XG4gIGNvbnN0IGluZmVyZW50aWEyQ2hpcHMgPSBuZXcgSW5mZXJlbnRpYTJDaGlwcygxMik7XG4gIGl0KFwiY2hpcHMgYXMgaXMgbnVtYmVyXCIsICgpID0+IHtcbiAgICBleHBlY3QoaW5mZXJlbnRpYTJDaGlwcy5jaGlwcykudG9CZSgxMik7XG4gIH0pO1xuICBpdChcIk5ldXJvbnhDb3JlcyBpcyB0d2ljZSBvZiBjaGlwc1wiLCAoKSA9PiB7XG4gICAgZXhwZWN0KGluZmVyZW50aWEyQ2hpcHMubmV1cm9ueENvcmVzKS50b0JlKDI0KTtcbiAgfSk7XG4gIGl0KFwiQWNjZWxlcmF0b3JNZW1vcnkgaXMgMTYgdGltZXMgbW9yZSB0aGFuIE5ldXJvbiBjb3JlXCIsICgpID0+IHtcbiAgICBleHBlY3QoaW5mZXJlbnRpYTJDaGlwcy5hY2NlbGVyYXRvck1lbW9yeSkudG9TdHJpY3RFcXVhbChcbiAgICAgIFNpemUuZ2liaWJ5dGVzKDM4NCksXG4gICAgKTtcbiAgfSk7XG59KTtcblxuLy8gaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9lYzIvaW5zdGFuY2UtdHlwZXMvaW5mMi8/bmMxPWhfbHNcbmRlc2NyaWJlKFwiTmV1cm9ueEluc3RhbmNlVHlwZVwiLCAoKSA9PiB7XG4gIGNvbnN0IGluc3RhbmNlVHlwZXMgPSBbXG4gICAgW1xuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyX1hMQVJHRSxcbiAgICAgIHtcbiAgICAgICAgaW5zdGFuY2VUeXBlOiBcImluZjIueGxhcmdlXCIsXG4gICAgICAgIHZDcHU6IDQsXG4gICAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoMTYpLFxuICAgICAgICBhY2NlbGVyYXRvckNoaXBzOiB7XG4gICAgICAgICAgY2hpcHM6IDEsXG4gICAgICAgICAgbmV1cm9ueENvcmVzOiAyLFxuICAgICAgICAgIGFjY2VsZXJhdG9yTWVtb3J5OiBTaXplLmdpYmlieXRlcygzMiksXG4gICAgICAgIH0gc2F0aXNmaWVzIElBY2NlbGVyYXRvckNoaXBzLFxuICAgICAgfSxcbiAgICBdIGFzIGNvbnN0LFxuICAgIFtcbiAgICAgIE5ldXJvbnhJbnN0YW5jZVR5cGUuSU5GMl84WExBUkdFLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZVR5cGU6IFwiaW5mMi44eGxhcmdlXCIsXG4gICAgICAgIHZDcHU6IDMyLFxuICAgICAgICBtZW1vcnk6IFNpemUuZ2liaWJ5dGVzKDEyOCksXG4gICAgICAgIGFjY2VsZXJhdG9yQ2hpcHM6IHtcbiAgICAgICAgICBjaGlwczogMSxcbiAgICAgICAgICBuZXVyb254Q29yZXM6IDIsXG4gICAgICAgICAgYWNjZWxlcmF0b3JNZW1vcnk6IFNpemUuZ2liaWJ5dGVzKDMyKSxcbiAgICAgICAgfSBzYXRpc2ZpZXMgSUFjY2VsZXJhdG9yQ2hpcHMsXG4gICAgICB9LFxuICAgIF0gYXMgY29uc3QsXG4gICAgW1xuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzI0WExBUkdFLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZVR5cGU6IFwiaW5mMi4yNHhsYXJnZVwiLFxuICAgICAgICB2Q3B1OiA5NixcbiAgICAgICAgbWVtb3J5OiBTaXplLmdpYmlieXRlcygzODQpLFxuICAgICAgICBhY2NlbGVyYXRvckNoaXBzOiB7XG4gICAgICAgICAgY2hpcHM6IDYsXG4gICAgICAgICAgbmV1cm9ueENvcmVzOiAxMixcbiAgICAgICAgICBhY2NlbGVyYXRvck1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoMTkyKSxcbiAgICAgICAgfSBzYXRpc2ZpZXMgSUFjY2VsZXJhdG9yQ2hpcHMsXG4gICAgICB9LFxuICAgIF0gYXMgY29uc3QsXG4gICAgW1xuICAgICAgTmV1cm9ueEluc3RhbmNlVHlwZS5JTkYyXzQ4WExBUkdFLFxuICAgICAge1xuICAgICAgICBpbnN0YW5jZVR5cGU6IFwiaW5mMi40OHhsYXJnZVwiLFxuICAgICAgICB2Q3B1OiAxOTIsXG4gICAgICAgIG1lbW9yeTogU2l6ZS5naWJpYnl0ZXMoNzY4KSxcbiAgICAgICAgYWNjZWxlcmF0b3JDaGlwczoge1xuICAgICAgICAgIGNoaXBzOiAxMixcbiAgICAgICAgICBuZXVyb254Q29yZXM6IDI0LFxuICAgICAgICAgIGFjY2VsZXJhdG9yTWVtb3J5OiBTaXplLmdpYmlieXRlcygzODQpLFxuICAgICAgICB9IHNhdGlzZmllcyBJQWNjZWxlcmF0b3JDaGlwcyxcbiAgICAgIH0sXG4gICAgXSBhcyBjb25zdCxcbiAgXTtcbiAgaXQuZWFjaChpbnN0YW5jZVR5cGVzKShcIkluc3RhbmNlVHlwZSBvZiAlc1wiLCAoaW5zdGFuY2VUeXBlLCBleHBlY3RlZCkgPT4ge1xuICAgIGV4cGVjdChpbnN0YW5jZVR5cGUudG9TdHJpbmcoKSkudG9CZShleHBlY3RlZC5pbnN0YW5jZVR5cGUpO1xuICAgIGV4cGVjdChpbnN0YW5jZVR5cGUudkNwdSkudG9CZShleHBlY3RlZC52Q3B1KTtcbiAgICBleHBlY3QoaW5zdGFuY2VUeXBlLm1lbW9yeSkudG9TdHJpY3RFcXVhbChleHBlY3RlZC5tZW1vcnkpO1xuICAgIGV4cGVjdChpbnN0YW5jZVR5cGUuYWNjZWxlcmF0b3JDaGlwcy5jaGlwcykudG9CZShcbiAgICAgIGV4cGVjdGVkLmFjY2VsZXJhdG9yQ2hpcHMuY2hpcHMsXG4gICAgKTtcbiAgICBleHBlY3QoaW5zdGFuY2VUeXBlLmFjY2VsZXJhdG9yQ2hpcHMubmV1cm9ueENvcmVzKS50b0JlKFxuICAgICAgZXhwZWN0ZWQuYWNjZWxlcmF0b3JDaGlwcy5uZXVyb254Q29yZXMsXG4gICAgKTtcbiAgICBleHBlY3QoaW5zdGFuY2VUeXBlLmFjY2VsZXJhdG9yQ2hpcHMuYWNjZWxlcmF0b3JNZW1vcnkpLnRvU3RyaWN0RXF1YWwoXG4gICAgICBleHBlY3RlZC5hY2NlbGVyYXRvckNoaXBzLmFjY2VsZXJhdG9yTWVtb3J5LFxuICAgICk7XG4gIH0pO1xufSk7XG4iXX0=