@@ -189,49 +189,33 @@ ifdef LLAMA_HIPBLAS
189
189
LLAMA_CUDA_DMMV_X ?= 128
190
190
LLAMA_CUDA_MMV_Y ?= 1
191
191
LLAMA_CUDA_KQUANTS_ITER ?= 1
192
- LLAMA_CUDA_FORCE_DMMV = true
193
- CFLAGS += -DGGML_USE_HIPBLAS -DGGML_USE_CUBLAS $(shell $(ROCM_PATH)/bin/hipconfig -C)
194
- CXXFLAGS += -DGGML_USE_HIPBLAS -DGGML_USE_CUBLAS $(shell $(ROCM_PATH)/bin/hipconfig -C)
195
- LDFLAGS += -L/opt/rocm/lib -Wl,-rpath=$(ROCM_PATH)/lib -lhipblas -lamdhip64
196
- OBJS += ggml-cuda.o ggml_v2-cuda.o ggml_v2-cuda-legacy.o
197
-
198
- ifdef LLAMA_CUDA_DMMV_X
199
- CXXFLAGS += -DGGML_CUDA_DMMV_X=$(LLAMA_CUDA_DMMV_X )
200
- else
201
- CXXFLAGS += -DGGML_CUDA_DMMV_X=32
202
- endif
203
- ifeq ($(LLAMA_CUDA_FORCE_DMMV ) , true)
204
- CXXFLAGS += -DGGML_CUDA_FORCE_DMMV
205
- endif
206
- ifdef LLAMA_CUDA_MMV_Y
207
- CXXFLAGS += -DGGML_CUDA_MMV_Y=$(LLAMA_CUDA_MMV_Y )
208
- else ifdef LLAMA_CUDA_DMMV_Y
209
- CXXFLAGS += -DGGML_CUDA_MMV_Y=$(LLAMA_CUDA_DMMV_Y ) # for backwards compatibility
210
- else
211
- CXXFLAGS += -DGGML_CUDA_MMV_Y=1
212
- endif
213
-
214
- ifdef LLAMA_CUDA_KQUANTS_ITER
215
- CXXFLAGS += -DK_QUANTS_PER_ITERATION=$(LLAMA_CUDA_KQUANTS_ITER)
216
- else
217
- CXXFLAGS += -DK_QUANTS_PER_ITERATION=2
218
- endif
219
-
220
- ggml-cuda.o : CXXFLAGS += $(addprefix --offload-arch=,$(GPU_TARGETS ) )
221
-
222
-
223
- # DGGML_CUDA_DMMV_F16 does not currently work with AMD.
192
+ LLAMA_CUDA_FORCE_DMMV ?= true
193
+ HIPFLAGS += -DGGML_USE_HIPBLAS -DGGML_USE_CUBLAS $(shell $(ROCM_PATH)/bin/hipconfig -C)
194
+ HIPLDFLAGS += -L/opt/rocm/lib -Wl,-rpath=$(ROCM_PATH)/lib -lhipblas -lamdhip64
195
+ HIP_OBJS += ggml-cuda.o ggml_v2-cuda.o ggml_v2-cuda-legacy.o
196
+ ggml-cuda.o : HIPFLAGS += $(addprefix --offload-arch=,$(GPU_TARGETS ) ) \
197
+ -DGGML_CUDA_DMMV_X=$(LLAMA_CUDA_DMMV_X ) \
198
+ -DGGML_CUDA_MMV_Y =$(LLAMA_CUDA_MMV_Y ) \
199
+ -DGGML_CUDA_FORCE_DMMV \
200
+ -DK_QUANTS_PER_ITERATION=$(LLAMA_CUDA_KQUANTS_ITER )
201
+ ggml_v2-cuda.o : HIPFLAGS += $(addprefix --offload-arch=,$(GPU_TARGETS ) ) \
202
+ -DGGML_CUDA_DMMV_X=$(LLAMA_CUDA_DMMV_X ) \
203
+ -DGGML_CUDA_MMV_Y =$(LLAMA_CUDA_MMV_Y ) \
204
+ -DGGML_CUDA_FORCE_DMMV \
205
+ -DK_QUANTS_PER_ITERATION=$(LLAMA_CUDA_KQUANTS_ITER )
206
+ ggml_v2-cuda-legacy.o : HIPFLAGS += $(addprefix --offload-arch=,$(GPU_TARGETS ) ) \
207
+ -DGGML_CUDA_DMMV_X=$(LLAMA_CUDA_DMMV_X ) \
208
+ -DGGML_CUDA_MMV_Y =$(LLAMA_CUDA_MMV_Y ) \
209
+ -DGGML_CUDA_FORCE_DMMV \
210
+ -DK_QUANTS_PER_ITERATION=$(LLAMA_CUDA_KQUANTS_ITER ) # DGGML_CUDA_DMMV_F16 does not currently work with AMD.
224
211
ggml-cuda.o: ggml-cuda.cu ggml-cuda.h
225
- $(CXX ) $(CXXFLAGS ) -x hip -c -o $@ $<
226
-
212
+ $(CXX) $(CXXFLAGS) $(HIPFLAGS) -x hip -c -o $@ $<
227
213
ggml_v2-cuda.o : otherarch/ggml_v2-cuda.cu otherarch/ggml_v2-cuda.h
228
- $(CXX ) $(CXXFLAGS ) -x hip -c -o $@ $<
229
-
214
+ $(CXX ) $(CXXFLAGS ) $(HIPFLAGS ) -x hip -c -o $@ $<
230
215
ggml_v2-cuda-legacy.o : otherarch/ggml_v2-cuda-legacy.cu otherarch/ggml_v2-cuda-legacy.h
231
- $(CXX ) $(CXXFLAGS ) -x hip -c -o $@ $<
216
+ $(CXX ) $(CXXFLAGS ) $( HIPFLAGS ) -x hip -c -o $@ $<
232
217
endif # LLAMA_HIPBLAS
233
218
234
-
235
219
ifdef LLAMA_METAL
236
220
CFLAGS += -DGGML_USE_METAL -DGGML_METAL_NDEBUG
237
221
CXXFLAGS += -DGGML_USE_METAL
@@ -267,6 +251,7 @@ OPENBLAS_BUILD =
267
251
OPENBLAS_NOAVX2_BUILD =
268
252
CLBLAST_BUILD =
269
253
CUBLAS_BUILD =
254
+ HIPBLAS_BUILD =
270
255
271
256
ifeq ($(OS ) ,Windows_NT)
272
257
DEFAULT_BUILD = $(CXX) $(CXXFLAGS) $^ -shared -o
[email protected] $(LDFLAGS)
@@ -275,10 +260,12 @@ ifeq ($(OS),Windows_NT)
275
260
OPENBLAS_NOAVX2_BUILD = $(CXX) $(CXXFLAGS) $^ lib/libopenblas.lib -shared -o
[email protected] $(LDFLAGS)
276
261
CLBLAST_BUILD = $(CXX) $(CXXFLAGS) $^ lib/OpenCL.lib lib/clblast.lib -shared -o
[email protected] $(LDFLAGS)
277
262
278
- ifdef LLAMA_CUBLAS
279
- CUBLAS_BUILD = $(CXX) $(CXXFLAGS) $(CUBLAS_FLAGS) $^ -shared -o
[email protected] $(CUBLASLD_FLAGS) $(LDFLAGS)
280
- endif
281
-
263
+ ifdef LLAMA_CUBLAS
264
+ CUBLAS_BUILD = $(CXX) $(CXXFLAGS) $(CUBLAS_FLAGS) $^ -shared -o
[email protected] $(CUBLASLD_FLAGS) $(LDFLAGS)
265
+ endif
266
+ ifdef LLAMA_HIPBLAS
267
+ HIPBLAS_BUILD = $(CXX) $(CXXFLAGS) $(HIPFLAGS) $^ -shared -o
[email protected] $(HIPLDFLAGS) $(LDFLAGS)
268
+ endif
282
269
else
283
270
DEFAULT_BUILD = $(CXX) $(CXXFLAGS) $^ -shared -o
[email protected] $(LDFLAGS)
284
271
FAILSAFE_BUILD = $(CXX) $(CXXFLAGS) $^ -shared -o
[email protected] $(LDFLAGS)
@@ -294,17 +281,22 @@ else
294
281
endif
295
282
endif
296
283
297
- ifdef LLAMA_CUBLAS
298
- CUBLAS_BUILD = $(CXX) $(CXXFLAGS) $(CUBLAS_FLAGS) $^ -shared -o
[email protected] $(CUBLASLD_FLAGS) $(LDFLAGS)
299
- endif
284
+ ifdef LLAMA_CUBLAS
285
+ CUBLAS_BUILD = $(CXX) $(CXXFLAGS) $(CUBLAS_FLAGS) $^ -shared -o
[email protected] $(CUBLASLD_FLAGS) $(LDFLAGS)
286
+ endif
287
+ ifdef LLAMA_HIPBLAS
288
+ HIPBLAS_BUILD = $(CXX) $(CXXFLAGS) $(HIPFLAGS) $^ -shared -o
[email protected] $(HIPLDFLAGS) $(LDFLAGS)
289
+ endif
300
290
301
291
ifndef LLAMA_OPENBLAS
302
292
ifndef LLAMA_CLBLAST
303
293
ifndef LLAMA_CUBLAS
294
+ ifndef LLAMA_HIPBLAS
304
295
OPENBLAS_BUILD = @echo 'Your OS $(OS) does not appear to be Windows. For faster speeds, install and link a BLAS library. Set LLAMA_OPENBLAS=1 to compile with OpenBLAS support or LLAMA_CLBLAST=1 to compile with ClBlast support. This is just a reminder, not an error.'
305
296
endif
306
297
endif
307
298
endif
299
+ endif
308
300
endif
309
301
310
302
@@ -339,7 +331,7 @@ ggml_openblas_noavx2.o: ggml.c ggml.h
339
331
ggml_clblast.o : ggml.c ggml.h
340
332
$(CC ) $(CFLAGS ) $(FULLCFLAGS ) $(CLBLAST_FLAGS ) -c $< -o $@
341
333
ggml_cublas.o : ggml.c ggml.h
342
- $(CC ) $(CFLAGS ) $(FULLCFLAGS ) $(CUBLAS_FLAGS ) -c $< -o $@
334
+ $(CC ) $(CFLAGS ) $(FULLCFLAGS ) $(CUBLAS_FLAGS ) $( HIPFLAGS ) -c $< -o $@
343
335
344
336
# quants K
345
337
k_quants.o : k_quants.c k_quants.h ggml.h ggml-cuda.h
@@ -361,7 +353,7 @@ ggml_v2_openblas_noavx2.o: otherarch/ggml_v2.c otherarch/ggml_v2.h
361
353
ggml_v2_clblast.o : otherarch/ggml_v2.c otherarch/ggml_v2.h
362
354
$(CC ) $(CFLAGS ) $(FULLCFLAGS ) $(CLBLAST_FLAGS ) -c $< -o $@
363
355
ggml_v2_cublas.o : otherarch/ggml_v2.c otherarch/ggml_v2.h
364
- $(CC ) $(CFLAGS ) $(FULLCFLAGS ) $(CUBLAS_FLAGS ) -c $< -o $@
356
+ $(CC ) $(CFLAGS ) $(FULLCFLAGS ) $(CUBLAS_FLAGS ) $( HIPFLAGS ) -c $< -o $@
365
357
366
358
# extreme old version compat
367
359
ggml_v1.o : otherarch/ggml_v1.c otherarch/ggml_v1.h
@@ -391,7 +383,7 @@ gpttype_adapter.o: gpttype_adapter.cpp
391
383
gpttype_adapter_clblast.o : gpttype_adapter.cpp
392
384
$(CXX ) $(CXXFLAGS ) $(CLBLAST_FLAGS ) -c $< -o $@
393
385
gpttype_adapter_cublas.o : gpttype_adapter.cpp
394
- $(CXX ) $(CXXFLAGS ) $(CUBLAS_FLAGS ) -c $< -o $@
386
+ $(CXX ) $(CXXFLAGS ) $(CUBLAS_FLAGS ) $( HIPFLAGS ) -c $< -o $@
395
387
396
388
clean :
397
389
rm -vf * .o main quantize_llama quantize_gpt2 quantize_gptj quantize_neox quantize_mpt quantize-stats perplexity embedding benchmark-matmult save-load-state main.exe quantize_llama.exe quantize_gptj.exe quantize_gpt2.exe quantize_neox.exe quantize_mpt.exe koboldcpp.dll koboldcpp_openblas.dll koboldcpp_failsafe.dll koboldcpp_openblas_noavx2.dll koboldcpp_clblast.dll koboldcpp_cublas.dll koboldcpp.so koboldcpp_openblas.so koboldcpp_failsafe.so koboldcpp_openblas_noavx2.so koboldcpp_clblast.so koboldcpp_cublas.so
@@ -413,8 +405,8 @@ koboldcpp_openblas_noavx2: ggml_openblas_noavx2.o ggml_v2_openblas_noavx2.o ggml
413
405
$(OPENBLAS_NOAVX2_BUILD )
414
406
koboldcpp_clblast : ggml_clblast.o ggml_v2_clblast.o ggml_v1.o expose.o common.o gpttype_adapter_clblast.o ggml-opencl.o ggml_v2-opencl.o ggml_v2-opencl-legacy.o k_quants.o $(OBJS )
415
407
$(CLBLAST_BUILD )
416
- koboldcpp_cublas : ggml_cublas.o ggml_v2_cublas.o ggml_v1.o expose.o common.o gpttype_adapter_cublas.o k_quants.o $(CUBLAS_OBJS ) $(OBJS )
417
- $(CUBLAS_BUILD )
408
+ koboldcpp_cublas : ggml_cublas.o ggml_v2_cublas.o ggml_v1.o expose.o common.o gpttype_adapter_cublas.o k_quants.o $(CUBLAS_OBJS ) $(HIP_OBJS ) $( OBJS )
409
+ $(CUBLAS_BUILD ) $( HIPBLAS_BUILD )
418
410
419
411
quantize_llama : examples/quantize/quantize.cpp ggml.o llama.o k_quants.o
420
412
$(CXX ) $(CXXFLAGS ) $^ -o $@ $(LDFLAGS )
0 commit comments