mirror of
https://github.com/ml-explore/mlx.git
synced 2025-07-14 20:41:13 +08:00
Shorter kernel name for Windows (#1701)
* Shorter kernel name for Windows * Only hash the clipped part
This commit is contained in:
parent
c8fb54951a
commit
070bd433ab
@ -68,15 +68,20 @@ void* compile(
|
|||||||
std::string source_code = source_builder();
|
std::string source_code = source_builder();
|
||||||
std::string kernel_file_name;
|
std::string kernel_file_name;
|
||||||
|
|
||||||
// Deal with long kernel names. Maximum length for files on macOS is 255
|
// Deal with long kernel names. Maximum length for filename on macOS is 255
|
||||||
// characters. Clip file name with a little extra room and append a 16
|
// characters, and on Windows the maximum length for whole path is 260. Clip
|
||||||
// character hash.
|
// file name with a little extra room and append a 16 character hash.
|
||||||
|
#ifdef _WIN32
|
||||||
|
constexpr int max_file_name_length = 140;
|
||||||
|
#else
|
||||||
constexpr int max_file_name_length = 245;
|
constexpr int max_file_name_length = 245;
|
||||||
|
#endif
|
||||||
if (kernel_name.size() > max_file_name_length) {
|
if (kernel_name.size() > max_file_name_length) {
|
||||||
std::ostringstream file_name;
|
std::ostringstream file_name;
|
||||||
file_name
|
file_name
|
||||||
<< std::string_view(kernel_name).substr(0, max_file_name_length - 16);
|
<< std::string_view(kernel_name).substr(0, max_file_name_length - 16);
|
||||||
auto file_id = std::hash<std::string>{}(kernel_name);
|
auto file_id =
|
||||||
|
std::hash<std::string>{}(kernel_name.substr(max_file_name_length - 16));
|
||||||
file_name << "_" << std::hex << std::setw(16) << file_id << std::dec;
|
file_name << "_" << std::hex << std::setw(16) << file_id << std::dec;
|
||||||
kernel_file_name = file_name.str();
|
kernel_file_name = file_name.str();
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user