v2: add multimodal 12B test, fix VisionTower12B kernel dispatch
This commit is contained in:
@@ -236,7 +236,7 @@ public final class VisionTower12B {
|
||||
output: MTLBuffer,
|
||||
cmdBuf: MTLCommandBuffer
|
||||
) throws {
|
||||
let pso = try engine.pipeline(named: "quantized_matmul")
|
||||
let pso = try engine.pipeline(named: "quantized_matmul_seq")
|
||||
let enc = cmdBuf.makeComputeCommandEncoder()!
|
||||
enc.setComputePipelineState(pso)
|
||||
|
||||
@@ -244,22 +244,22 @@ public final class VisionTower12B {
|
||||
enc.setBuffer(weight, offset: 0, index: 1)
|
||||
enc.setBuffer(scales, offset: 0, index: 2)
|
||||
enc.setBuffer(biases, offset: 0, index: 3)
|
||||
enc.setBuffer(output, offset: 0, index: 4)
|
||||
enc.setBuffer(bias ?? biases, offset: 0, index: 4)
|
||||
enc.setBuffer(output, offset: 0, index: 5)
|
||||
|
||||
var inD = UInt32(inDim)
|
||||
enc.setBytes(&inD, length: MemoryLayout<UInt32>.size, index: 5)
|
||||
enc.setBytes(&inD, length: 4, index: 6)
|
||||
var outD = UInt32(outDim)
|
||||
enc.setBytes(&outD, length: MemoryLayout<UInt32>.size, index: 6)
|
||||
enc.setBytes(&outD, length: 4, index: 7)
|
||||
var hasBias = bias != nil
|
||||
enc.setBytes(&hasBias, length: 1, index: 8)
|
||||
var sl = UInt32(seqLen)
|
||||
enc.setBytes(&sl, length: 4, index: 9)
|
||||
|
||||
let grid = MTLSize(width: outDim * seqLen, height: 1, depth: 1)
|
||||
let tg = engine.threadgroupSize1D(pso, count: max(outDim, seqLen))
|
||||
let grid = MTLSize(width: outDim, height: seqLen, depth: 1)
|
||||
let tg = engine.threadgroupSize2D(pso, grid: (outDim, seqLen))
|
||||
enc.dispatchThreads(grid, threadsPerThreadgroup: tg)
|
||||
enc.endEncoding()
|
||||
|
||||
// Add unquantized bias if present
|
||||
if let b = bias {
|
||||
try eltwiseAdd(input: output, bias: b, seqLen: seqLen, dim: outDim, cmdBuf: cmdBuf)
|
||||
}
|
||||
}
|
||||
|
||||
private func rmsNormSeq(
|
||||
|
||||
Reference in New Issue
Block a user