Skip to content

Commit bce2402

Browse files
committed
Fix float64 GPU error and Swift 6 compatibility
- Use Float instead of Double for MLXArray to fix GPU error - Add await for actor-isolated generate method (Chapter11) - Fix sendable closure capture issue (Chapter14)
1 parent b125e1f commit bce2402

8 files changed

Lines changed: 19 additions & 27 deletions

File tree

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
33
<plist version="1.0">
4-
<dict>
5-
<key>com.apple.security.app-sandbox</key>
6-
<false/>
7-
<key>com.apple.security.network.client</key>
8-
<true/>
9-
<key>com.apple.security.files.user-selected.read-write</key>
10-
<true/>
11-
<key>com.apple.security.files.downloads.read-write</key>
12-
<true/>
13-
</dict>
4+
<dict/>
145
</plist>

AppleMLXTutorials/Views/Chapters/Chapter11View.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ struct Chapter11View: View {
295295
)
296296

297297
// AsyncStream으로 토큰 생성
298-
let stream = try model.generate(
298+
let stream = try await model.generate(
299299
input: lmInput,
300300
parameters: parameters
301301
)

AppleMLXTutorials/Views/Chapters/Chapter14View.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -343,9 +343,10 @@ struct Chapter14View: View {
343343
lastXt = xt
344344
stepCount += 1
345345

346+
let currentStep = stepCount
346347
Task { @MainActor in
347-
generationSteps = stepCount
348-
generationProgress = Double(stepCount) / Double(totalSteps)
348+
generationSteps = currentStep
349+
generationProgress = Double(currentStep) / Double(totalSteps)
349350
}
350351
}
351352

AppleMLXTutorials/Views/Chapters/Chapter2View.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,11 @@ struct Chapter2View: View {
143143
var result = ""
144144

145145
// 1. 기본 배열 생성
146-
let a = MLXArray([1.0, 2.0, 3.0, 4.0])
146+
let a = MLXArray([1.0, 2.0, 3.0, 4.0] as [Float])
147147
result += "1D 배열: \(a)\n"
148148

149149
// 2. 2D 배열 (행렬)
150-
let matrix = MLXArray([1.0, 2.0, 3.0, 4.0, 5.0, 6.0]).reshaped([2, 3])
150+
let matrix = MLXArray([1.0, 2.0, 3.0, 4.0, 5.0, 6.0] as [Float]).reshaped([2, 3])
151151
result += "2D 행렬:\n\(matrix)\n"
152152
result += " shape: \(matrix.shape)\n"
153153
result += " ndim: \(matrix.ndim)\n"
@@ -169,7 +169,7 @@ struct Chapter2View: View {
169169
result += "Range [0, 5): \(range)\n\n"
170170

171171
// 5. 데이터 타입 변환
172-
let floats = MLXArray([1.0, 2.0, 3.0])
172+
let floats = MLXArray([1.0, 2.0, 3.0] as [Float])
173173
result += "Float32 배열: \(floats)\n"
174174
result += "dtype: \(floats.dtype)"
175175

AppleMLXTutorials/Views/Chapters/Chapter3View.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -167,8 +167,8 @@ struct Chapter3View: View {
167167
var result = ""
168168

169169
// 산술 연산
170-
let a = MLXArray([1.0, 2.0, 3.0, 4.0])
171-
let b = MLXArray([2.0, 2.0, 2.0, 2.0])
170+
let a = MLXArray([1.0, 2.0, 3.0, 4.0] as [Float])
171+
let b = MLXArray([2.0, 2.0, 2.0, 2.0] as [Float])
172172

173173
result += "== 산술 연산 ==\n"
174174
result += "a = \(a)\n"
@@ -180,15 +180,15 @@ struct Chapter3View: View {
180180

181181
// 수학 함수
182182
result += "== 수학 함수 ==\n"
183-
let x = MLXArray([1.0, 4.0, 9.0, 16.0])
183+
let x = MLXArray([1.0, 4.0, 9.0, 16.0] as [Float])
184184
result += "x = \(x)\n"
185185
result += "sqrt(x) = \(sqrt(x))\n"
186186
result += "log(x) = \(log(x))\n"
187187
result += "square(x) = \(square(x))\n\n"
188188

189189
// 집계 연산
190190
result += "== 집계 연산 ==\n"
191-
let matrix = MLXArray([1.0, 2.0, 3.0, 4.0, 5.0, 6.0]).reshaped([2, 3])
191+
let matrix = MLXArray([1.0, 2.0, 3.0, 4.0, 5.0, 6.0] as [Float]).reshaped([2, 3])
192192
result += "matrix:\n\(matrix)\n"
193193
result += "sum() = \(matrix.sum())\n"
194194
result += "mean() = \(matrix.mean())\n"

AppleMLXTutorials/Views/Chapters/Chapter4View.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -190,7 +190,7 @@ struct Chapter4View: View {
190190

191191
// 지연 계산 데모
192192
result += "== 지연 계산 데모 ==\n"
193-
let x = MLXArray([1.0, 2.0, 3.0])
193+
let x = MLXArray([1.0, 2.0, 3.0] as [Float])
194194
let y = x * 2
195195
let z = y + 1
196196
result += "x = \(x)\n"

AppleMLXTutorials/Views/Chapters/Chapter6View.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ struct Chapter6View: View {
199199

200200
// 2. 활성화 함수
201201
result += "== 활성화 함수 ==\n"
202-
let x = MLXArray([-2.0, -1.0, 0.0, 1.0, 2.0])
202+
let x = MLXArray([-2.0, -1.0, 0.0, 1.0, 2.0] as [Float])
203203
result += "입력: \(x)\n"
204204
result += "ReLU: \(relu(x))\n"
205205
result += "Sigmoid: \(sigmoid(x))\n"

AppleMLXTutorials/Views/Chapters/Chapter7View.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ struct Chapter7View: View {
193193

194194
// 활성화 함수 비교
195195
result += "== 활성화 함수 비교 ==\n"
196-
let x = MLXArray([-2.0, -1.0, 0.0, 1.0, 2.0])
196+
let x = MLXArray([-2.0, -1.0, 0.0, 1.0, 2.0] as [Float])
197197
result += "입력 x: \(x)\n\n"
198198

199199
let reluOut = relu(x)
@@ -218,7 +218,7 @@ struct Chapter7View: View {
218218

219219
// Softmax
220220
result += "== Softmax ==\n"
221-
let logits = MLXArray([1.0, 2.0, 3.0, 4.0])
221+
let logits = MLXArray([1.0, 2.0, 3.0, 4.0] as [Float])
222222
let probs = softmax(logits)
223223
eval(probs)
224224
result += "Logits: \(logits)\n"
@@ -227,8 +227,8 @@ struct Chapter7View: View {
227227

228228
// MSE Loss
229229
result += "== MSE Loss ==\n"
230-
let predictions = MLXArray([1.0, 2.0, 3.0, 4.0])
231-
let targets = MLXArray([1.1, 2.2, 2.9, 3.8])
230+
let predictions = MLXArray([1.0, 2.0, 3.0, 4.0] as [Float])
231+
let targets = MLXArray([1.1, 2.2, 2.9, 3.8] as [Float])
232232
let mse = mean(square(predictions - targets))
233233
eval(mse)
234234
result += "예측: \(predictions)\n"
@@ -237,7 +237,7 @@ struct Chapter7View: View {
237237

238238
// Cross-Entropy 데모
239239
result += "== Cross-Entropy 개념 ==\n"
240-
let classLogits = MLXArray([2.0, 1.0, 0.1, 0.5, 2.5, 0.3]).reshaped([2, 3])
240+
let classLogits = MLXArray([2.0, 1.0, 0.1, 0.5, 2.5, 0.3] as [Float]).reshaped([2, 3])
241241
let classProbs = softmax(classLogits, axis: -1)
242242
eval(classProbs)
243243
result += "Logits:\n\(classLogits)\n"

0 commit comments

Comments
 (0)