Skip to content

Commit 7a1d4d8

Browse files
committed
Refactor mtmd-helper.cpp to improve batch processing logic in mtmd_helper_eval_chunk_single function
1 parent 0dc932f commit 7a1d4d8

File tree

2 files changed

+24
-23
lines changed

2 files changed

+24
-23
lines changed

CMakeLists.txt

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,24 @@ set(CMAKE_WARN_UNUSED_CLI YES)
77

88
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
99

10-
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
11-
if(DEFINED HTP_ARCH_VERSION)
12-
if (${HTP_ARCH_VERSION} STREQUAL "v75" OR ${HTP_ARCH_VERSION} STREQUAL "v79")
13-
#works fine on Snapdragon 8Gen3&8Elite with 1.5x - 3x performance gains with the default ggml backend
14-
set(OPT_FLAG " -O3 -march=armv8.7-a -mcpu=cortex-x1 -mtune=cortex-x1 -flto -D_GNU_SOURCE -fvectorize -ffp-model=fast -fno-finite-math-only")
15-
message("OPT_FLAG:${OPT_FLAG}")
16-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
17-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
18-
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
19-
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
20-
endif()
21-
endif()
22-
endif()
23-
24-
if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE)
25-
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
26-
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
27-
endif()
10+
#if(CMAKE_SYSTEM_NAME STREQUAL "Android")
11+
# if(DEFINED HTP_ARCH_VERSION)
12+
# if (${HTP_ARCH_VERSION} STREQUAL "v75" OR ${HTP_ARCH_VERSION} STREQUAL "v79")
13+
# #works fine on Snapdragon 8Gen3&8Elite with 1.5x - 3x performance gains with the default ggml backend
14+
# set(OPT_FLAG " -O3 -march=armv8.7-a -mcpu=cortex-x1 -mtune=cortex-x1 -flto -D_GNU_SOURCE -fvectorize -ffp-model=fast -fno-finite-math-only")
15+
# message("OPT_FLAG:${OPT_FLAG}")
16+
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
17+
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
18+
# set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
19+
# set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DGGML_USE_HEXAGON ${DEBUG_FLAG} ${OPT_FLAG}")
20+
# endif()
21+
# endif()
22+
#endif()
23+
24+
#if (NOT XCODE AND NOT MSVC AND NOT CMAKE_BUILD_TYPE)
25+
# set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
26+
# set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
27+
#endif()
2828

2929
# Add path to modules
3030
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/")

tools/mtmd/mtmd-helper.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -231,12 +231,13 @@ int32_t mtmd_helper_eval_chunk_single(mtmd_context * ctx,
231231
while (i < n_tokens) { // split into batches
232232
text_batch.n_tokens = 0; // clear the batch
233233
for (; i < n_tokens && text_batch.n_tokens < n_batch; i++) {
234+
text_batch.token [text_batch.n_tokens] = tokens[i];
235+
text_batch.pos [text_batch.n_tokens] = n_past++;
236+
text_batch.n_seq_id[text_batch.n_tokens] = 1;
237+
text_batch.seq_id [text_batch.n_tokens][0] = seq_id;
238+
text_batch.logits [text_batch.n_tokens] = false;
239+
234240
text_batch.n_tokens++;
235-
text_batch.token [i] = tokens[i];
236-
text_batch.pos [i] = n_past++;
237-
text_batch.n_seq_id[i] = 1;
238-
text_batch.seq_id [i][0] = seq_id;
239-
text_batch.logits [i] = false;
240241
}
241242
bool is_last_token = (i == n_tokens);
242243
if (logits_last && is_last_token) {

0 commit comments

Comments
 (0)